gpt4 book ai didi

ios - 如何创建异步 NSOperation iOS?

转载 作者:行者123 更新时间:2023-11-28 21:48:44 25 4
gpt4 key购买 nike

我已经研究了有关异步操作的 Apple 文档,但我无法正确获取它。

我正在分享我的理解和努力。请看一看并建议我正确理解异步 NSOperation。

Asynchronous 是一个只读属性,我们无法更改它。 我创建了一个继承 NSOperation 的类。我也有重写开始和主要方法。

我没有使用 NSOperationQueue。当我使用 [operation start] 开始操作时;主线程上的方法。然后在 start 和 main 方法实现中,我得到 isAsynchronous '0'。

当我使用辅助线程开始操作时

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
operation = [[CustomOperation alloc] init];
[operation start];
}

我在开始和主要方法实现中仍然得到 isAsynchronous '0'。

我不明白为什么 isAsynchronous 在任何线程中总是返回“0”。请告诉我这背后的原因。

我看到有人根据这个问题提出了一些问题,但我无法理解这个功能。

如果你给我任何例子,我会正确地理解它,这将对我有所帮助。

如果我不够清楚,请告诉我,我应该再描述一下。

最佳答案

您混淆了 Grand Central Dispatch 和 NSOperation。

默认情况下,NSOperation 是同步的 - 当您启动它时,它会在当前线程上运行直到完成。您正在后台线程上启动同步 NSOperation,因此它将在该后台线程上运行直到完成。这完全没有问题。它在后台运行。它不称自己为“异步”,因为它不关心线程。

大多数情况下,只使用 Grand Central Dispatch 而根本不使用 NSOperation 会好得多。你使用 NSOperation 的地方是你需要它是可取消的。

关于ios - 如何创建异步 NSOperation iOS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29096151/

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