我试图从一个NSOperationinheritance,并从中读取一些样本,他们说:当任务完成后,使用NSOperation的KVO完成操作,代码如下: [self willChangeValueForKey:@"isFinished"]; [self willChangeValueForKey:@"isExecuting"] finished = YES; executing = NO; [self didChangeValueForKey:@"isFinished"]; [self didChangeValueForKey:@"isExecuting"]; 然后isFinished被调用 – (BOOL) isFinished{ return(finished); } 任何人都可以向我解释这一点? 为什么已经被调用,isFinished会完成操作? 如我所知,KVO手动需要[self didChangeValueForKey:@“isExecuting”]; 我没有看到代码像addobserver:和observeValueForKeyPath: 我写 -(void)call { [self willChangeValueForKey:@"isVip"]; [self didChangeValueForKey:@"isVip"]; } -(void)isVip { NSLog(@"Im vip"); } 当[自我呼叫]时isVip不被调用;