使用NSOperation调用performSelectorOnMainThread

时间:2012-06-08 00:05:59

标签: objective-c ios multithreading nsthread nsoperation

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

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

任何建议都将受到赞赏。

1 个答案:

答案 0 :(得分:0)

确保你的NSOperation init函数没有使用来自错误线程的对象,这在使用Core Data之前已经绊倒了我。如果我记得,在主线程上调用了init函数,所以当我初始化我的对象上下文并试图在main()中访问它时,它崩溃了后台线程。它可以帮助调试,以printing the current thread ID查看代码的哪些线程部分。