0

ユーザーのクラッシュログに次のメッセージが表示されます。

Dyldエラーメッセージ:シンボルが見つかりません:_OBJC_CLASS _ $ _ NSMetadataQuery

したがって、解決策は、Foundationフレームワークを「オプション」にする必要があることを理解しています。しかし、私にとって奇妙なのは、このクラッシュは一部のiOS4デバイスでのみ発生し、他のデバイスでは発生せず、4.3シミュレーターでもクラッシュしないことです。特にiPad(iOS4を実行している)でのみ発生しますが、それでも一部のiPadでのみ発生します。誰かがそれがなぜかもしれないのか説明できますか?

フレームワークのリンクに関するバグの場合、すべてのiOS4デバイス(または少なくともすべてのiPad)でクラッシュするはずですよね?

4

2 に答える 2

1

NSMetadataQueryはiOS>=5.0で利用できます。これは、フレームワークのウィークリンクについて話しているのでご存知だと思います。

まず、おそらくもうそれをする必要はありません。

これは実行時に発生し、再現性がないため、ロジックに矛盾があるように聞こえます。最初にクラスが存在することを確認せずにNSMetadataQueryを使用する場所はありますか?コードは次のようなイディオムでラップする必要があります。

if ([NSMetadataQuery class] != nil) {
    // Use the class
}
于 2012-02-11T22:02:52.473 に答える
0

この正確なエラーがありました。App Delegateが呼び出される前にクラッシュしていたため、ロジックのケースではありませんでした。私の使用法はNSMetadataQuery、ライフサイクルのそれよりもはるかに遅いものでした。

Foundationフレームワークの弱いリンクが必要であることが判明しました。

于 2012-04-02T20:05:44.620 に答える