【发布时间】:2014-01-21 17:17:08
【问题描述】:
我需要自己定义 getter 的行为,而不是合成我的 getter/setter。
执行此操作时,我收到一条警告,告诉我我还需要定义 setter,但我担心这样做是否符合 KVC:
- (void) setPath:(NSString *)path {
_path = path;
}
或者我需要使用setValue:ForKey: 吗?
【问题讨论】:
-
@Rob,看看我的回答。如果您使用
atomic声明@property(或省略原子性说明符,因为atomic是默认值),如果您尝试仅手动实现其中一种访问器方法,编译器会报错。 -
你有一个很好的答案,但要澄清一下:访问器不需要符合 KVC。 属性需要通过具有遵循正确命名约定的访问器来兼容 KVC。对于名为“路径”的属性,
-setPath:是一个合规名称。该方法的作用无关紧要,因为 KVC 不知道也不关心您如何实现该属性。 -
感谢您完成安德鲁斯的回答。我是 KVO/KVC 的新手,所以一切都不是很清楚。
标签: objective-c accessor key-value-coding