我喜欢关于readwrite属性的一件事是,您可以免费获得KVO合规性,所以我倾向于在属性上使用它,即使它们只是从属性所属的对象内写入。另一方面,我知道如果一个属性的目的是可以被其他对象写入,那么它应该被设置为readwrite。所以,我应该用读写,即使我只能从自己的呼叫二传手:关于读写属性的问题
[self setFoo:bar];
替代(我认为)是使用:
[self willChangeValueForKey:@"foo"];
foo = bar;
[self didChangeValueForKey:@"foo"];
这是一个额外的两行我的代码,我有写每一次我想改变foo。哪个更好?