iphone - 在 Objective-C 中访问实例属性的最佳实践?

标签 iphone objective-c ios cocoa-touch cocoa

Possible Duplicate:
Difference between self.ivar and ivar?

我想知道,例如,我是否将实例变量定义为 Obj-C 中的属性,

@property (copy) NSString *str; 

@synthesize str = _str; 

我应该在实例方法中访问它

_str = @"ABC";

或者我应该使用访问器,即

[self setStr:@"ABC"];

有关于此的一般准则吗?

非常感谢!

最佳答案

可以从类内部读取实例变量:

NSLog(@"str = %@", _str);

但不要直接设置实例变量:

_str = @"ABC"; // No!

这会绕过您在属性(property)上精心设置的复制机制。因此,请这样做:

[self setStr:@"ABC"]; // Ok
self.str = @"ABC";    // Ok, shorter

关于iphone - 在 Objective-C 中访问实例属性的最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12926544/

相关文章:

iphone - 如何检测哪个第三个SDK使用UDID?

iphone - iOS : SA_OAuthTwitterController callback after authorization

ios - Swift - 转换为绝对值

iphone - 从 AppDelegate 将 NSMutableArray 添加到第二个选项卡中的 TableView

objective-c - 核心数据中的多个反向关系

ios - UISplitViewController 对主 Controller 中自定义单元格的不同布局行为

ios - 从 Xcode 项目中删除空行

ios - 使用 Swift,从 plist 加载数据时如何区分 boolean 值和整数值?

ios - 从 Github 加载可在其他几台 Mac 上运行的库时,Xcode 5 模拟器不显示所有 View

iphone - 为我的公司投资组合创建 iPhone 应用程序