UIDevice在后台中CFDictionaryGetValue出错

3
我正在检查:
[[UIDevice currentDevice] systemName]

在applicationDidEnterBackground方法中,出现了EXC_BAD_ACCESS(SIGSEGV)信号。堆栈跟踪显示,这是在UIDevice内部调用CFDictionaryGetValue时发生的。

进行试验,尝试调用:

CFDictionaryGetValue(NULL, "key");

出现同样的错误。有什么想法吗?我已经搜索了关于在后台访问UIDevice的文档,但没有发现任何表明这应该是个问题的东西。

谢谢


尝试这个:dispatch_async(dispatch_get_main_queue(), ^{ [[UIDevice currentDevice] systemName]; }); - Reno Jones
1个回答

0
在 applicationDidEnterBackground: 中调用(并记录)[[UIDevice currentDevice] systemName] 在我的测试中运作良好。CFDictionaryGetValue(NULL, "key") 将始终崩溃,并且与您遇到的问题无关。
- (void)applicationDidEnterBackground:(UIApplication *)application
{
    NSString *systemName = [[UIDevice currentDevice] systemName];
    if ( systemName )
        NSLog(@"%@", systemName);
    else
        NSLog(@"null systemName");
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接