Swift CUICatalog:无效请求:请求子类型而不指定惯用语(它来自何处以及如何修复?)

Swift CUICatalog:无效请求:请求子类型而不指定惯用语(它来自何处以及如何修复?),swift,sprite-kit,asset-catalog,sktexture,sktextureatlas,Swift,Sprite Kit,Asset Catalog,Sktexture,Sktextureatlas,当我运行SpriteKit游戏时,我在控制台中多次收到此错误。据我所知(虽然我不能完全确定),游戏本身并没有受到影响,但这个错误可能会有一些其他的影响,以及拥挤的调试控制台 我对错误进行了一些研究,找到了一些可能的解决方案,但似乎没有一个完全奏效。这些解决方案包括将ignoresSiblingOrder转换为false,并将纹理指定为SKTextureAtlas(命名为:“atlasName”).textureName(“textureName”),但这些方法不起作用 我认为错误来自于在资产目录

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

我对错误进行了一些研究,找到了一些可能的解决方案,但似乎没有一个完全奏效。这些解决方案包括将
ignoresSiblingOrder
转换为
false
,并将纹理指定为
SKTextureAtlas(命名为:“atlasName”).textureName(“textureName”)
,但这些方法不起作用

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

let Texture = SKTextureAtlas(named: "character").textureNamed("\character1")
    character = SKSpriteNode(texture: Texture)
此外:

let Atlas=SKTextureAtlas(命名为:“字符”)
var Frames=[SKTexture]()
让numImages=Atlas.textureNames.count
对于var i=1;i=1;我--{
让TextureName=“字符(i)”
框架.附加(Atlas.textureName(textureName))
}
设firstFrame=Frames[0]
character=SKSpriteNode(纹理:第一帧)
上面的代码只是用来创建一个数组,从中为角色设置动画,动画运行完全正常

对于我的所有其他sprite节点,我使用
SKSpriteNode(imageName:“imageName”)
初始化资产目录中的图像名称,但不在纹理图集中。所有图像都有@1x、@2x和@3x版本

我不确定是否有任何其他可能的错误消息来源,或者上面的例子是否是错误的来源

这只是sprite工具包的一个bug,还是我的代码或资产的一个合法错误


谢谢

我也有这个错误。在我看来,这是Xcode 7.2的错误,而不是你的错。我在制作一个应用程序的过程中更新了XCODE,这个消息开始在控制台中不断显示。根据和链接,你在这里没有什么好害怕的

产品>清洁

看起来很有意思


当您从资产目录中删除一个项目时,错误似乎开始弹出,但它的引用仍然隐藏在代码的某个地方。(就我而言,这是我删除的默认太空船资产。)

谢谢您提供的信息。我将忽略它,因为它不会影响应用程序。顺便说一句,我认为你说的是Xcode 7.2的一个bug是对的,因为我刚刚更新了,这就是我开始看到错误的时候。谢谢链接实际上试图解决问题,忽略问题并等待修复是一个好主意吗?我真的不想围绕一个bug重构我的代码。@3366784什么问题?我相信这是一个错误,今天我的应用程序有这个“问题”被批准并发布了。它工作得很好,所以我认为完全可以忽略它。我也有这个问题,只有在iPhone上(不是在iPad上)@Burundanga我想说的是警告而不是问题。这个错误仍然存在于Xcode 7.3测试版中。C'mon appleth如果直接从地图集加载纹理,而不是使用
initWithImagedNamed:@“somestring”
或类似方法,则该应用程序不会“消失”。我从Assets.xcsets中删除了spaceship资源,清理了投影,并删除了CUICatalog:Invalid Request:requesting subtype,但没有指定我得到的惯用法错误。(代码7.2.1)
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)