gpt4 book ai didi

ios - NSOperation KVO 已完成

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:20:48 29 4
gpt4 key购买 nike

我正在尝试子类化 NSOperation,并从中读取一些样本,他们说:任务完成后,使用 NSOperation 的 KVO 来完成操作,代码在这里:

[self willChangeValueForKey:@"isFinished"];
[self willChangeValueForKey:@"isExecuting"]
finished = YES;
executing = NO;
[self didChangeValueForKey:@"isFinished"];
[self didChangeValueForKey:@"isExecuting"];

然后调用 isFinished

- (BOOL) isFinished{
return(finished);
}

谁能给我解释一下?为什么isFinished被调用,isFinished会完成操作吗?据我了解,KVO 手动需要 [self didChangeValueForKey:@"isExecuting"];我没有看到像 addobserver: 和 observeValueForKeyPath:

这样的代码

我写

 -(void)call
{
[self willChangeValueForKey:@"isVip"];
[self didChangeValueForKey:@"isVip"];
}

-(void)isVip
{
NSLog(@"Im vip");
}

[自调用]时不调用isVip;

最佳答案

NSOperationQueue 实现将观察操作的“isFinished”属性(使用 KVO),因此它知道何时将其从队列中删除。 isFinished 最有可能在被告知其值发生变化后由内部 Apple 代码调用。

关于ios - NSOperation KVO 已完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18460750/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com