我尝试使用类别向类添加属性。属性访问器看起来像:
- (NSArray *)thumbnails {
return objc_getAssociatedObject(self, kThumbnails);
}
- (void)setThumbnails:(NSArray *)thumbnails {
[self willChangeValueForKey:@keypath(self.thumbnails)];
objc_setAssociatedObject(self, kThumbnails, thumbnails, OBJC_ASSOCIATION_RETAIN);
[self didChangeValueForKey:@keypath(self.thumbnails)];
}
不幸的是没有触发通知。甚至可以将KVO兼容属性添加到类别中吗?
答案 0 :(得分:4)
KVO绝对可以使用类别中的访问方法。
发布的代码与密钥@"thumbnails"
符合KVO标准。您甚至不必发送willChangeValueForKey:
和didChangeValueForKey:
消息。