iOS:某些iOS4设备上出现“未找到符号”错误,但并非全部

时间:2012-02-11 21:36:52

标签: ipad ios4 dyld nsmetadataquery

我在用户的崩溃日志中收到以下消息:

  

Dyld错误消息:未找到符号:_OBJC_CLASS _ $ _ NSMetadataQuery

所以我理解解决方案是我应该使Foundation框架“可选”。但令我觉得奇怪的是这次崩溃只发生在一些iOS4设备上,而不是其他设备上,并且它也不会在4.3模拟器中崩溃。它只发生在iPad(运行iOS4)上,但即便如此,它只在其中一些上发生。有人可以解释为什么会这样吗?

如果这是链接框架的错误,它应该在所有iOS4设备(或至少所有iPad)上崩溃,对吗?

2 个答案:

答案 0 :(得分:1)

NSMetadataQuery可在iOS> = 5.0上使用,我假设您知道,因为您正在讨论弱链接框架。

首先,you probably don't need to do that any more.

由于这是在运行时发生的,并且不可重复,因此听起来像是逻辑上的不一致。在没有首先确保类存在的情况下,您是否在任何地方使用NSMetadataQuery?你的代码应该用如下的成语包装:

if ([NSMetadataQuery class] != nil) {
    // Use the class
}

答案 1 :(得分:0)

我有这个确切的错误。这不是一个逻辑的例子,因为它甚至在App Delegate被调用之前崩溃了,我对NSMetadataQuery的使用在生命周期的后期要晚得多。

事实证明,需要弱连接基金会框架。