我有一些UIViewController
子類,我希望它們共享一個名爲session
的屬性,它處理「已登錄」狀態。在協議中定義@property
我知道我可以使用父類,但這是非常明確的,所以我想知道我是否可以通過共享協議「強制執行」session
屬性。
我從來沒有見過在協議中定義的顯式屬性(顯然你可以定義setter和getter),那麼在協議內定義一個屬性是一個可取的模式?
我有一些UIViewController
子類,我希望它們共享一個名爲session
的屬性,它處理「已登錄」狀態。在協議中定義@property
我知道我可以使用父類,但這是非常明確的,所以我想知道我是否可以通過共享協議「強制執行」session
屬性。
我從來沒有見過在協議中定義的顯式屬性(顯然你可以定義setter和getter),那麼在協議內定義一個屬性是一個可取的模式?
@property
也可以出現在協議或類別的聲明中。
表示在official apple documentation。所以沒有問題。
是,使用的協議有可能添加屬性:在每一個採用這個協議類
@protocol MyProtocol <NSObject>
@property (nonatomic, retain) NSFoobar *baz;
@end
而且@synthesize baz;
(或者你可以使用關鍵字@optional
標記聲明的屬性爲可選)。
新的自動合成在這裏很有趣... – 2012-08-11 14:01:14
在.h文件中:
@property(nonatomic,strong)UILabel *mylabel;
在.m文件:
@synthesize mylabel = _mylabel;
編譯器將創建getter和setter方法mylabel。
Ex ->
-(void)setMylabe:(UILabel *) mylabel { //setter
}
-(UIlabel*)mylabel { // getter
}
這是個好消息:-) – Besi 2012-08-11 10:10:18