NSProxy
, похоже, работает очень хорошо, как объекты в режиме ожидания для тех, которые еще не существуют. Например.
- (NSMethodSignature *)methodSignatureForSelector:(SEL)sel {
return [self.target methodSignatureForSelector:sel];
}
- (void)forwardInvocation:(NSInvocation *)invocation {
[invocation invokeWithTarget:self.target];
}
Вышеприведенный код будет прозрачно передавать вызов любого метода целевому объекту, который представляет собой прокси. Однако, похоже, он не обрабатывает наблюдения и уведомления КВО о цели. Я попытался использовать подкласс NSProxy
как стоящий для объектов, которые будут переданы в NSTableView
, но я получаю следующую ошибку.
Cannot update for observer <NSAutounbinderObservance 0x105889dd0> for
the key path "objectValue.status" from <NSTableCellView 0x105886a80>,
most likely because the value for the key "objectValue" has changed
without an appropriate KVO notification being sent. Check the
KVO-compliance of the NSTableCellView class.
Есть ли способ сделать прозрачный NSProxy
совместимым с KVO?