Objective c 实例属性的概念
请你打破我的困惑好吗 如果我在类中定义一个属性Objective c 实例属性的概念,objective-c,ios,cocoa-touch,Objective C,Ios,Cocoa Touch,请你打破我的困惑好吗 如果我在类中定义一个属性 @interface Class { UIScrollView * _scrollView; } @property (nonatomic, retain) IBOutlet UIScrollView * scrollView; @end @implement @synthesize scrollView = _scrollView; @end 当我想要实现它时,我可以使用 _scrollView.contentSize = xxx 或
@interface Class
{
UIScrollView * _scrollView;
}
@property (nonatomic, retain) IBOutlet UIScrollView * scrollView;
@end
@implement
@synthesize scrollView = _scrollView;
@end
当我想要实现它时,我可以使用
_scrollView.contentSize = xxx
或
这两种描述有什么区别
感谢您的回答…对实例变量的直接引用就是对实例中某个字段的引用,不受它也是属性的“后备存储”这一事实的影响 另一方面,
self.propName
引用是[self-propName]
(如果读取)或[self-setPropName:newPropValue]
(如果设置)的简写。也就是说,这些引用通过访问器方法进行。如果属性被定义为assign
,那么这并不重要,但是如果它是retain
,那么setter方法会处理所有的retain逻辑
此外,您可以实现自己的属性访问器---(SomeType*)propName{…}
和-(void)setPropName:(SomeType*)propParm{…}
--如果您想让它们执行一些特殊的操作,例如“惰性”初始化
(另外,属性默认为“public”访问,而实例变量默认为“private”访问。)Hot-Licks的答案是正确的。您可能还对这个答案感兴趣,以帮助澄清问题。
self.scrollView.contentSize = xxx