在 Objective-C 中访问实例变量的正确语法是什么?
假设我们有这个变量:
@interface thisInterface : UIViewController {
NSMutableString *aString;
}
@property (nonatomic, retain) NSMutableString *aString;
并且它是合成的。
当我们想要访问它时,我们首先要分配并初始化它。使用 Objective-C 编程大约一个月了,我已经看到了两种不同形式的语法。我见过人们做的很简单aString = [[NSMutableString alloc] initWithString:@"hi"]
,他们在那里分配字符串;我也看到人们以self.aString
然后他们继续初始化他们的ivar。我想我只是想找出初始化实例变量的最正确方法是什么,因为在前一个示例中,我收到了 EXC_BAD_ACCESS 错误。前置后self.
然而,它并没有出现。
如果这是一个重复的问题,请原谅我,但在阅读了一些关于 SO 的帖子后,这让我很好奇。我正在尝试学习 Objective-C 的正确语法,因为我更喜欢正确而不是马虎。
如果您已申报财产并且@synthesize
它在 .m 文件中,您只需这样设置:
self.aString = @"hi"; // or [[NSMutableString alloc] initWithString:@"hi"];
Using self.varName
利用您的财产声明的实际作用 - 它处理新值的保留(因为您的财产具有retain
属性),为您释放旧值等。
如果你只是这样做:
aString = someValue;
...您可能会泄漏其中的原始值aString
,因为没有使用self.aString
您是直接访问变量还是通过属性访问变量。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)