【问题标题】:UIDevice CFDictionaryGetValue error in backgroundUIDevice CFDictionaryGetValue 在后台出错
【发布时间】:2013-02-04 17:26:41
【问题描述】:

我正在检查:

[[UIDevice currentDevice] systemName]

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

试验,呼唤:

CFDictionaryGetValue(NULL, "key");

导致同样的错误。

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

谢谢

【问题讨论】:

  • 试试这个:dispatch_async(dispatch_get_main_queue(), ^{ [[UIDevice currentDevice] systemName]; });

标签: ios objective-c multitasking uidevice


【解决方案1】:

在 applicationDidEnterBackground 中调用(和记录)[[UIDevice currentDevice] systemName]:在我的测试中工作正常。 CFDictionaryGetValue(NULL, "key") 总会崩溃,和你遇到的问题无关。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-13
    相关资源
    最近更新 更多