CUICatalog: Invalid Request: requesting subtype without specifying idiom (它来自哪里以及如何修复它?)

CUICatalog: Invalid Request: requesting subtype without specifying idiom (Where is it coming from and how to fix it?)

当我 运行 我的 SpriteKit 游戏时,我在控制台中多次收到此错误。据我所知(虽然我不完全确定),游戏本身没有受到影响,但错误可能有其他一些影响,以及拥挤的调试控制台。

我对该错误进行了一些研究,并找到了一些可能的解决方案,none 其中似乎完全有效。这些解决方案包括将 ignoresSiblingOrder 转换为 false,并将纹理指定为 SKTextureAtlas(named: "atlasName").textureNamed("textureName"),但这些都不起作用。

我认为错误来自资产目录中纹理和纹理图集的使​​用,尽管我不完全确定。以下是我如何实现其中的一些 textures/images:

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 kit 的错误,还是我的代码或资产的合理错误?

谢谢!

我也有这个错误。在我看来,这是 Xcode 7.2 错误而不是你的错。我在制作应用程序的过程中更新了 Xcode,此消息开始不断出现在控制台中。根据 this and that 链接,您无需担心。

Product > Clean

似乎可以解决问题。

当您从 Asset Catalog 中删除项目时似乎开始弹出错误,但它的引用仍然隐藏在某处的代码中。 (在我的例子中,它是我删除的默认宇宙飞船资产。)