2013-02-19 21 views
3

我檢查:的UIDevice CFDictionaryGetValue錯誤在後臺

[[UIDevice currentDevice] systemName] 
在applicationDidEnterBackground

。它導致了一個EXC_BAD_ACCESS(SIGSEGV)信號。堆棧跟蹤顯示這是在UIDevice內部發生的,它正在調用CFDictionaryGetValue。

進行實驗,稱:

CFDictionaryGetValue(NULL, "key"); 

導致同樣的錯誤。

任何想法?我在後臺搜索了有關訪問UIDevice的文檔,但沒有發現任何內容表明它應該是一個問題。

感謝

+0

嘗試這種情況:dispatch_async(dispatch_get_main_queue(),^ { [[的UIDevice currentDevice] SYSTEMNAME]; }); – 2013-02-19 21:18:43

回答

0

調用(和記錄)[的UIDevice currentDevice] SYSTEMNAME在applicationDidEnterBackground:在我的測試工作正常。 CFDictionaryGetValue(NULL,「key」)將總是崩潰,並且與您遇到的問題無關。

- (void)applicationDidEnterBackground:(UIApplication *)application 
{ 
    NSString *systemName = [[UIDevice currentDevice] systemName]; 
    if (systemName) 
     NSLog(@"%@", systemName); 
    else 
     NSLog(@"null systemName"); 
}