objective-c - ( objective-c )做@synthesize myvar = _myvar(如果有的话)有什么好处?

标签 objective-c

<分区>

Possible Duplicate:
How does an underscore in front of a variable in a cocoa objective-c class work?

我不完全清楚(除了代码的可读性),为什么要在创建属性时创建一个带有下划线前缀的内部变量。

既然一切都在内部处理,为什么还要这样做,因为我们没有向 getter 和 setter 添加任何代码?

即使我必须向 getter 或 setter 添加一些代码,我也不明白为什么我不能只检查 myvar 而不是必须检查 _myvar 然后将其分配给 myvar。

谁能给我一些解释,除了“这样做是因为每个人都这样做?”我想了解这种做法背后的全部原因(即使没有用于 getter 和 setter 的自定义代码,这似乎也很常见)。

谢谢!

最佳答案

我自己也曾多次想过这个问题。对其他人的答案很感兴趣,但我发现的一个原因是它会迫使您注意是否在您应该使用 getter/setter 时直接访问 ivar。

self.myvar = @"blah";_myvar = @"blah";

对比

self.myvar = @"blah";myvar = @"blah";

self. 很容易被意外遗漏......意外地把 _ 放进去要困难得多。

关于objective-c - ( objective-c )做@synthesize myvar = _myvar(如果有的话)有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8145373/

相关文章:

objective-c - 多个代表或通知中心

iphone - 将对象返回到 Root View Controller

ios - 通过两个一对一关系查找核心数据实体

ios - 为标签的相同字符设置不同的颜色

iphone - 无法将字典写入 plist objective-c

ios - 自定义设置按钮背景色ios

iphone - 可调整大小的 UITableViewCell

iphone - 为什么使用 #define UIColor 作为 CGColorRef 会导致崩溃?

ios - WKWebView 重新加载,然后为本地 index.html 文件变为空白

ios - 在 ios 中使用 LongGestureRecognizer 更改 View 选定部分的颜色