我正在查:
[[UIDevice currentDevice] systemName]
在applicationDidEnterBackground中。这导致EXC_BAD_ACCESS(SIGSEGV)信号。堆栈跟踪显示这是在UIDevice内部发生的,它正在调用CFDictionaryGetValue。
实验,调用:
CFDictionaryGetValue(NULL, "key");
导致相同的错误。
有任何想法吗?我在后台搜索了有关访问UIDevice的文档,但没有发现任何指示它应该是问题的信息。
谢谢
最佳答案
在我的测试中,调用(并记录)applicationDidEnterBackground中的[[UIDevice currentDevice] systemName]:效果很好。 CFDictionaryGetValue(NULL,“key”)将始终崩溃,并且与您遇到的问题无关。
- (void)applicationDidEnterBackground:(UIApplication *)application
{
NSString *systemName = [[UIDevice currentDevice] systemName];
if ( systemName )
NSLog(@"%@", systemName);
else
NSLog(@"null systemName");
}