切换标签栏时NSOperation失败

时间:2013-01-16 09:12:01

标签: iphone objective-c nsthread nsoperation nsoperationqueue

我正在使用带有两个标签的TabBarController。在第二个我调用NSOperation时,将操作添加到NSOperationQueue。当我选择第二个选项卡时,我在主线程上调用了此操作。但当我切换到第一个标签时,应用程序崩溃了。我正在释放并取消操作

我收到了关于bt的以下消息

#0  0x0243d09b in objc_msgSend ()
#1  0x1299c4a0 in ?? ()
#2  0x008b6d23 in -[__NSOperationInternal start] ()
#3  0x008b6a34 in -[NSOperation start] ()
#4  0x00943301 in __block_global_6 ()
#5  0x0222753f in _dispatch_call_block_and_release ()
#6  0x02239014 in _dispatch_client_callout ()
#7  0x0222a2e8 in _dispatch_root_queue_drain ()
#8  0x02229fcb in _dispatch_worker_thread3 ()
#9  0x99a16b24 in _pthread_wqthread ()
#10 0x99a186fe in start_wqthread ()

请建议任何解决方案

1 个答案:

答案 0 :(得分:0)

确保确定NSOperationQueue的所有权。此外,请确保在切换选项卡时不会释放NSOperation所需的所有实例。

你能否展示正在进行实际工作的线程的堆栈跟踪?