2

例如:

//Myclass.h
@property(nonatomic, strong) NSString *name;

//MyClass.m
//@synthesize name = _name

所以我知道我们不再需要使用@synthesizeiOS6+ 了。编译器会自动为我创建 getter 和 setter。

  1. 但我不明白是什么时候用什么self.name = @"Testing"时候用_name = @"Testing"

  2. 应该_name = @"Testing"一直使用吗?

  3. 如果是,什么时候?什么时候应该使用 iVAR?

  4. 另外,如果我想编写自己的 getter 和 setter,我需要编写@synthesize还是可以只编写自己的 getter 和 setter?

谢谢你的帮助!

4

1 回答 1

3

通常,您只在 init 方法、getter 和 setter 以及 dealloc 中使用实例变量。当然也有例外,但这是一个很好的经验法则。

如果您同时编写自己的 gettersetter(或者在只读属性的情况下并编写 getter),则必须自己合成您的属性。在所有其他情况下,属性是自动合成的。

于 2013-10-13T05:01:16.793 回答