web-dev-qa-db-ja.com

CUICatalog:無効な要求:イディオムを指定せずにサブタイプを要求しています(どこから来て、どのように修正するのですか?)

SpriteKitゲームを実行すると、コンソールにこのエラーが何度も表示されます。私が知る限り(完全にはわかりませんが)、ゲーム自体は影響を受けませんが、エラーはデバッグコンソールの混雑に加えて、他の影響を与える可能性があります。

私はエラーについていくつかの調査を行い、いくつかの可能な解決策を見つけましたが、どれも完全には機能していないようです。これらのソリューションには、ignoresSiblingOrderfalseに変換し、テクスチャをSKTextureAtlas(named: "atlasName").textureNamed("textureName")として指定することが含まれますが、これらは機能しませんでした。

完全にはわかりませんが、アセットカタログのテクスチャとテクスチャアトラスの使用が原因でエラーが発生していると思います。これらのテクスチャ/画像のいくつかを実装する方法は次のとおりです。

_let Texture = SKTextureAtlas(named: "character").textureNamed("\character1")
    character = SKSpriteNode(texture: Texture)
_

また:

_let Atlas = SKTextureAtlas(named: "character")
    var Frames = [SKTexture]()

    let numImages = Atlas.textureNames.count

    for var i=1; i<=numImages; i++ {
        let textureName = "character(i)"
        Frames.append(Atlas.textureNamed(textureName))
    }
    for var i=numImages; i>=1; i-- {
        let TextureName = "character(i)"
        Frames.append(Atlas.textureNamed(textureName))
    }


    let firstFrame = Frames[0]
    character = SKSpriteNode(texture: firstFrame)
_

上記のコードは、キャラクターをアニメーション化するための配列を作成するために使用されているだけで、アニメーションは完全に正常に実行されます。

他のすべてのスプライトノードでは、アセットカタログの画像名を使用してSKSpriteNode(imageNamed: "imageName")で初期化しますが、テクスチャアトラス内では初期化しません。すべての画像には、@ 1x、@ 2x、および@ 3xバージョンがあります。

エラーメッセージの原因が他にあるかどうか、または上記の例がエラーの原因かどうかはわかりません。

これはSpriteキットの単なるバグですか、それともコードやアセットの正当なエラーですか?

ありがとう!

22
Noah Covey

私にもこのエラーがあります。私の意見では、これはXcode 7.2のバグであり、あなたのせいではありません。アプリの作成中にXcodeを更新したところ、このメッセージがコンソールに常に表示され始めました。 this および that リンクによると、ここで恐れることは何もありません。

18
Burundanga

製品>クリーン

トリックをするようです。

アセットカタログからアイテムを削除するとエラーがポップアップし始めたようですが、その参照はコードのどこかに埋もれています。 (私の場合、それは私が削除したデフォルトの宇宙船資産でした。)

3
Kashif