对于简单的数据,例如 NSInteger,setter/getter 的概念很容易理解。
如果我们说:NSInteger a;
"a" 的 setter 改变了 a 的值,而 getter 只获取(返回)它的值。然后很容易理解原子/非原子概念,因为原子将保证在更改 a 时读取“a”将始终返回一个完整值(getter 和 setter 是同步的)。
但是我不清楚的是作为对象指针的属性的 setter 和 getter(例如,NSData*、NSString*)。比如说一个 NSMutableData:
如果我们说: NSMutableData *m_my_mutable;
想象一下,对于属于我的对象 MyObject 的这个属性,我有一个 setter setMyMutable 和 getMyMutable。如果我这样做,那么我将调用 getter(因为我在附加数据之前获取了对象):
[[MyObject getMyMutable] appendData....]
但是 appendingData 也会修改它,因此它不应该被视为一个 setter 动作吗?还是 setter 仅指初始化值的事实(例如可以保留)。
我必须在这个概念中遗漏一些东西。
谢谢 Apple92