0

我有一个问题,我有一个在后台线程中运行的 NSOperation,并且在该执行的执行循环中,我调用 performSelectorOnMainThread 来执行 NSURLRequest,但是主线程永远不会得到执行该 NSURLRequest 的调用。

nsoperation 的目的是从核心数据实体构建一个 json 字符串,由于它是一个大对象,这可能需要相当长的时间。我通过仅传递托管对象 ID 的引用并使用不同的托管对象上下文来确保核心数据线程安全,因此无需担心。

任何建议将被认真考虑。

4

1 回答 1

0

确保您的 NSOperation init 函数没有使用来自错误线程的对象,这让我在使用 Core Data 之前遇到了麻烦。如果我记得,init 函数是在主线程上调用的,所以当我在那里初始化我的对象上下文并尝试在 main() 中访问它时,它会使后台线程崩溃。它可以通过打印当前线程 ID来帮助调试查看代码的哪些线程部分正在运行。

于 2012-06-08T00:24:51.123 回答