[英]Should I make my ivars properties in iOS?
只是當您認為自己了解某事時,您才不明白! :)
我知道如果將變量設為屬性,則可以在類中的任何位置訪問它,甚至可以從該類外部進行設置。
我想如果我不需要它,我可以把它變成一個ivar。 所以我有一個帶有大約5個UILabel的viewcontroller。 因此,在其viewDidLoad中,我說:
pharmacyName.text = self.receivedLocation.name;
pharmacyTel1.text = @"556-7843";
pharmacyTel2.text = @"991-2345";
pharmacyTel3.text = @"800-0001";
當我在.h文件中這樣聲明它們時:
@interface DetailViewController : UIViewController{
IBOutlet UILabel *pharmacyName;
IBOutlet UILabel *pharmacyTel1;
IBOutlet UILabel *pharmacyTel2;
IBOutlet UILabel *pharmacyTel3;
}
@property (nonatomic,strong) MyLocation *receivedLocation;
@end
否。將ivar創建為屬性不是強制性的。 如果您不想在課外訪問它,請按原樣使用。 在ARC中,您還可以如下聲明您的IBOutlet:
@interface DetailViewController : UIViewController{
__weak IBOutlet UILabel *pharmacyName;
__weak IBOutlet UILabel *pharmacyTel1;
__weak IBOutlet UILabel *pharmacyTel2;
__weak IBOutlet UILabel *pharmacyTel3;
}
這將保留一周的網點參考。 這是__weak and strong的細節
您始終可以采用多種方法來處理編程任務和標准。 我們小組已經開始使用一些編碼標准。 我們喜歡將不能從類(和協議語句)外部訪問的實例變量放在.m文件的私有接口中,如下所示:
@interface DetailViewController() {
NSString *value_;
}
@end
我們也喜歡用@property
我們的實例變量實例,並宣布與私營接口以及這樣的:
@interface DetailViewController() {
}
@property (nonatomic, strong) IBOutlet UIlabel *pharmacyName;
@end
然后在您的代碼中,將其稱為self.pharmacyName
。 它與自動完成功能以及獲取和設置效果很好。 同樣,當您遇到線程安全問題時,非原子性強行為也會派上用場。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.