我有一個應用程序在Snow Leopard服務器上運行幾天和幾周。 它使用-[NSRunLoop runUntilDate:]
「暫停」十秒鐘,執行其任務,然後再次暫停。用下面的報告,運行了一個多小時,我的應用程序崩潰後:NSRunloop runUntilDate導致應用程序崩潰
崩潰報告
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000013
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Application Specific Information:
objc_msgSend() selector name: release
Thread 0 Crashed: Dispatch queue: com.apple.main-thread
0 libobjc.A.dylib 0x00007fff84cfef0c objc_msgSend + 40
1 com.apple.CoreFoundation 0x00007fff84e363d1 __CFRunLoopDoSources0 + 1361
2 com.apple.CoreFoundation 0x00007fff84e345c9 __CFRunLoopRun + 873
3 com.apple.CoreFoundation 0x00007fff84e33d8f CFRunLoopRunSpecific + 575
4 com.apple.Foundation 0x00007fff83e73b74 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 270
5 com.apple.Foundation 0x00007fff83ebf19a -[NSRunLoop(NSRunLoop) runUntilDate:] + 78
乍一看我還以爲我的NSRunLoop
對象不再有效,因此release
消息深處CF導致崩潰。但是,我不認爲這種情況是 我在之前獲得對currentRunLoop
對象的引用。
死機時間在1到1.5小時之間不等,但我無法弄清楚是什麼導致了它。 任何意見或意見或調試的想法將不勝感激,因爲我不知道下一步該怎麼做。
編輯:解決問題 - 請參閱下面
你可以從失敗的方法發佈一些代碼? – NJones