我有一个问题,我有一个在后台线程中运行的 NSOperation,并且在该执行的执行循环中,我调用 performSelectorOnMainThread 来执行 NSURLRequest,但是主线程永远不会得到执行该 NSURLRequest 的调用。
nsoperation 的目的是从核心数据实体构建一个 json 字符串,由于它是一个大对象,这可能需要相当长的时间。我通过仅传递托管对象 ID 的引用并使用不同的托管对象上下文来确保核心数据线程安全,因此无需担心。
任何建议将被认真考虑。
我有一个问题,我有一个在后台线程中运行的 NSOperation,并且在该执行的执行循环中,我调用 performSelectorOnMainThread 来执行 NSURLRequest,但是主线程永远不会得到执行该 NSURLRequest 的调用。
nsoperation 的目的是从核心数据实体构建一个 json 字符串,由于它是一个大对象,这可能需要相当长的时间。我通过仅传递托管对象 ID 的引用并使用不同的托管对象上下文来确保核心数据线程安全,因此无需担心。
任何建议将被认真考虑。
确保您的 NSOperation init 函数没有使用来自错误线程的对象,这让我在使用 Core Data 之前遇到了麻烦。如果我记得,init 函数是在主线程上调用的,所以当我在那里初始化我的对象上下文并尝试在 main() 中访问它时,它会使后台线程崩溃。它可以通过打印当前线程 ID来帮助调试查看代码的哪些线程部分正在运行。