2013-03-07 2 views
3

카테고리를 사용하여 클래스에 속성을 추가하려고합니다. 속성 접근자는 다음과 같습니다.카테고리에 대해 KVO가 작동하지 않습니다.

- (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

관찰자를 등록하고 통지를 처리하는 코드를 보여줍니다. –

+0

관찰자가 등록 된 코드가 문제였습니다. 통지가 이미 발령 된 후 등록되었습니다. – zlajo

답변

4

KVO는 카테고리의 접근 자 메서드로 확실히 가능합니다.

게시 된 코드는 키 @"thumbnails"에 대해 KVO를 준수합니다. willChangeValueForKey:didChangeValueForKey: 메시지를 보내지 않아도됩니다.

관련 문제