iphone應用中protocol協議使用方法是本文要介紹的內容,文章有很詳細的介紹了protocol協議的使用方法,一起來看詳細內容。
一、說明
兩個類進行通訊,用協議就比較方便。
1、協議宣告了可以被任何類實現的方法
2、協議不是類,它是定義了乙個其他物件可以實現的介面
3、如果在某個類中實現了協議中的某個方法,也就是這個類實現了那個協議。
4、協議經常用來實現委託物件。乙個委託物件是一種用來協同或者代表其他物件的特殊物件。
5、委託,就是呼叫自己定義方法,別的類來實現。
6、新特性說明
@optional預編譯指令:表示可以選擇實現的方法
@required預編譯指令:表示必須強制實現的方法
二、定義
.h三、例子@protocol contactctrldelegate
-(void)dismisscontactsctrl;
@end
@inte***ce contactsctrl : uiviewcontroller
@property (nonatomic, assign) id <
contactctrldelegate
> delegate;
.m
@synthesize delegate;
例如:uitextview
@protocol uitextviewdelegate <如果要呼叫以上這些方法,就必須設定uitextview的委託:textview.delegate = self;nsobject
>
@optional
- (bool)textviewshouldbeginediting:(uitextview *)textview;
- (bool)textviewshouldendediting:(uitextview *)textview;
- (void)textviewdidbeginediting:(uitextview *)textview;
- (void)textviewdidendediting:(uitextview *)textview;
- (bool)textview:(uitextview *)textview shouldchangetextinrange:(nsrange)range replacementtext:(nsstring *)text;
- (void)textviewdidchange:(uitextview *)textview;
- (void)textviewdidchangeselection:(uitextview *)textview;
@end
四、demo
1、contactsctrl.h
#import <2、contactsctrl.muikit/uikit.h>
//定義協議
@protocol contactctrldelegate
-(void)dismisscontactsctrl;
@end
@inte***ce contactsctrl : uiviewcontroller
@property (nonatomic, assign) id <
contactctrldelegate
> delegate;
-(ibaction)cancelbtn:(id)sender;
@end
@implementation contactsctrl3、protocoldemoctrl.h@synthesize delegate;
// implement viewdidload to do additional setup after loading the view, typically from a nib.
- (void)viewdidload
//呼叫協議中的方法
-(ibaction)cancelbtn:(id)sender
#import <4、protocoldemoctrl.muikit/uikit.h>
#import "contactsctrl.h"
@inte***ce protocoldemoctrl : uiviewcontroller <
contactctrldelegate
>
#import "protocoldemoctrl.h"
#define barbuttonadd(selector) [[[uibarbuttonitem alloc] initwithbarbuttonsystemitem:uibarbuttonsystemitemadd target:
self action:selector] autorelease];
@implementation protocoldemoctrl
@synthesize contactsview;
// implement viewdidload to do additional setup after loading the view, typically from a nib.
- (void)viewdidload
- (void)addcontactaction:(id)sender
//實現contactctrldelegate協議中的方法
-(void)dismisscontactsctrl
iPhone中的SQLite應用
sqlite是基於c的api,在iphone中的執行速度超級快 在蘋果 上也有乙個對比,確實應該是速度最快的 由於在iphone3.0上已經支援了core data,是蘋果乙個新的api,並且是基於sqlite的。速度也是非常快吧,信不信由你。所以我們對sqlite僅需要懂一些即可,以下是一些基礎資...
iPhone中的SQLite應用
from sqlite是基於c的api,在iphone中的執行速度超級快 在蘋果 上也有乙個對比,確實應該是速度最快的 由於在iphone3.0上已經支援了core data,是蘋果乙個新的api,並且是基於sqlite的。速度也是非常快吧,信不信由你。所以我們對sqlite僅需要懂一些即可,以下是...
iPhone應用程式中App目錄結構
了解 iphone 應用程式中 目錄結構是本文要介紹的內容,不多說,直接進入內容。iphone 的 的目錄結構如下 2 documents 目錄就是我們可以用來寫入並儲存檔案得地方,一般可通過 nsarray paths nssearchpathfordirectoriesindomains nsd...