使用属性或直接访问 ivars 的特定性能和行为差异。
对于全局变量,使用它有什么区别:
@interface myClass (){
UIImageView *myView;
}
-(void)loadView{
[super loadView];
myView = [[UIImageView alloc] initWithFrame:CGrectMake(0,0,100,100)];
}
并这样做:
@interface myClass (){
}
@property (nonatomic, strong) UIImageView *myView;
@synthesize myView = _myView;
-(void)loadView{
[super loadView];
myView = [[UIImageView alloc] initWithFrame:CGrectMake(0,0,100,100)];
}
每种方法能给我们带来什么好处?
建议始终使用属性的原因是什么?
在第一种情况下,您的实例变量(或 ivar)myView
是该类私有的,不能被其他类访问。
在第二种情况下,您提供了一个属性,允许其他类通过合成访问器访问您的 ivar。声明属性的替代方法是编写您自己的访问器方法。这@synthesize
符号可以为你做到这一点。
请参阅 Apple 文档声明的属性 https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/Chapters/ocProperties.html#//apple_ref/doc/uid/TP30001163-CH17
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)