14

私はこれが一種のだまされていることを知っていますが、元の投稿にコメントするのに十分な評判がまだありません。答えはありませんが、より有用な情報があります (具体例)。モデレーターの皆さん、これを適切な場所に自由に移動してください。

最新の XCode 8 ベータ 6 (iOS 10 SDK) を使用してコードをコンパイルすると、「キャッチされていない例外 'NSInvalidArgumentException' が原因でアプリを終了しています。理由: '-[UIDeviceRGBColor countByEnumratingWithState:objects:count:]: unrecognized selector sent toインスタンス 0x600000071340'"

これは、通話中に発生します。

    auto viewController = [[[UIViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease];

私は自分のプロジェクトをコンパイルして問題が発生する最小限に抑えることで、問題を切り分けました。ここからダウンロードできます:

サンプルプロジェクト

多くのコードを削除したことに注意してください。ほぼすべてのクラスがなくなっているため、xib から参照されている存在しないクラスに対して多くの警告 (エラーではありません) が発生します。しかし、それは問題ではありません。コードは引き続きコンパイルされ、iOS 9 SDK で問題なく実行されます。ただし、iOS 10 SDK でコンパイルした後、シミュレーターと iOS 9 を実行しているデバイスの両方でクラッシュします。

「HackForUnrecognizedSelectorInIOS10.m」ファイルの「#if 0」を「#if 1」に変更することで、この問題を回避できます。これにより、UIColor の不足しているセレクターを定義するカテゴリが追加されます。しかし、明らかにそれを出荷コードに追加することはできません。これは、開発を継続するための一時的な応急処置にすぎません。

バグレポート (28153870) を提出しました。しかし、醜いハックなしでこの問題を回避する方法について、誰かがさらに情報を持っている場合は、どんな情報でも大歓迎です.

ありがとう

ミシェル・コールマン

4

2 に答える 2

4

私の場合、製品の一般設定でプロジェクトの展開ターゲットを 8.0 に変更する必要がありました。受け入れられた回答からのヒントに感謝します!

于 2016-11-05T10:25:16.907 に答える