3

我正在查:

[[UIDevice currentDevice] systemName]

在 applicationDidEnterBackground 中。它导致 EXC_BAD_ACCESS (SIGSEGV) 信号。堆栈跟踪显示这发生在 UIDevice 内部,它正在调用 CFDictionaryGetValue。

实验,调用:

CFDictionaryGetValue(NULL, "key");

导致相同的错误。

有任何想法吗?我搜索了有关在后台访问 UIDevice 的文档,但没有发现任何迹象表明它应该是一个问题。

谢谢

4

1 回答 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");
}
于 2013-02-19T21:24:12.743 回答