当你认为自己理解某事时,你就不会这样做! :)
据我所知,如果我将变量设为属性,我可以在类中的任何位置访问它,甚至可以从该类外部设置它。
我想如果我不需要它,我可以把它变成一个伊娃。所以我有一个大约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
答案 0 :(得分:5)
没有。创建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
的详细信息答案 1 :(得分:0)
您可以通过多种方式处理编程任务和标准。我们小组已开始使用一些编码标准。我们喜欢将不在类外部访问的实例变量(和协议语句)放在.m文件的私有接口中,如下所示:
@interface DetailViewController() {
NSString *value_;
}
@end
我们也希望将@property
用于我们的实例ivars,并在私有接口中声明这些,如下所示:
@interface DetailViewController() {
}
@property (nonatomic, strong) IBOutlet UIlabel *pharmacyName;
@end
然后在您的代码中,您将其称为self.pharmacyName
。它似乎与自动完成,以及获取和设置工作得很好。此外,当您遇到线程安全问题时,非原子性强行为会派上用场。