我理解声明的属性是如何工作的 - 我只需要澄清Objective C何时使用访问器方法与何时不使用。
假设我有一个使用retain声明的属性:
@property(非原子,保留)NSDate * date;
......以后...... @synthesize日期
如果我说: date = x
这是调用访问器方法吗?或者只是设置变量?
self.date = x
这似乎称为访问器方法(我想但我不确定,因为看起来保留计数正在增加)。
任何人都可以澄清这个问题吗?我很好奇,因为我有一些变量似乎在我需要之前变得无效(我必须专门调用retain),我怀疑这就是原因。
答案 0 :(得分:0)
date = x;
正在直接设置实例变量并绕过访问器方法。
self.date = x;
与[self setDate:x];
相同,并且正在使用访问器方法。