Jia*_* Li 1 iphone cocoa cocoa-touch objective-c ios
可能重复:
self.ivar和ivar之间的区别?
我想知道,如果我在Obj-C中将实例变量定义为属性,例如,
@property (copy) NSString *str;
Run Code Online (Sandbox Code Playgroud)
和
@synthesize str = _str;
Run Code Online (Sandbox Code Playgroud)
我应该在实例方法中访问它吗?
_str = @"ABC";
Run Code Online (Sandbox Code Playgroud)
或者我应该使用访问者,即
[self setStr:@"ABC"];
Run Code Online (Sandbox Code Playgroud)
有关于此的一般指导原则吗?
非常感谢!
可以从类中读取实例变量:
NSLog(@"str = %@", _str);
Run Code Online (Sandbox Code Playgroud)
但是不要直接设置实例变量:
_str = @"ABC"; // No!
Run Code Online (Sandbox Code Playgroud)
这绕过了copy你仔细放置在你房产上的机制.所以这样做是这样的:
[self setStr:@"ABC"]; // Ok
self.str = @"ABC"; // Ok, shorter
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
324 次 |
| 最近记录: |