0

私はTabBarController2 つのタブで使用しています。2 番目の例では、 を呼び出してNSOperation、操作を に追加していNSOperationQueueます。2 番目のタブを選択すると、メイン スレッドでこの操作が呼び出されます。しかし、最初のタブに切り替えると、アプリがクラッシュします。操作を適切に解除およびキャンセルしています

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 ()

解決策を提案してください

4

1 に答える 1

0

NSOperationQueue の所有権を確認してください。また、タブの切り替え中に NSOperation に必要なすべてのインスタンスが解放されていないことを確認してください。

実際の作業を行っているスレッドのスタックトレースを表示していただけますか?

于 2013-01-16T09:23:22.190 に答える