Я получаю следующее в своем окне вывода при запуске проекта:
An -observeValueForKeyPath:ofObject:change:context: message was received but not handled.
Key path: connection.messageQueue
Observed object: <Client: 0x10011ddb0>
...
Вы получаете идею. Дело в том, что я не знаю, почему это происходит. Однако все работает отлично. Вот код, вызывающий проблему:
-(id) initWithIdentifier:(NSString*)ident andClient:(Client*)chatClient {
if(![super initWithNibName:@"ChatView" bundle:nil]) {
return nil;
}
[self setTitle: ident];
client = chatClient;
[self setIdentifier:ident];
inContext = false;
[client addObserver:self forKeyPath:@"connection.messageQueue" options:NSKeyValueObservingOptionNew context:NULL];
return self;
}
-(void) observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
NSAttributedString* rar = [[NSAttributedString alloc] initWithString:@"test"];
[[textView textStorage] appendAttributedString:rar];
[super observeValueForKeyPath:keyPath ofObject:object change:change context:context];
}
Я думал, что покажу весь код, относящийся к этому. У класса только несколько методов, так что это все, что вам нужно увидеть. Я даже не использую это изменение, я просто набрасываю "тест", когда происходит событие KVO.
Трассировка стека становится очень большой, поскольку сообщения поступают все время. Тем не менее, похоже, что все работает нормально.
Любые подсказки?