CUICatalog:无效请求:请求子类型而不指定成语(它来自哪里以及如何修复它?)

Posted

技术标签:

【中文标题】CUICatalog:无效请求:请求子类型而不指定成语(它来自哪里以及如何修复它?)【英文标题】:CUICatalog: Invalid Request: requesting subtype without specifying idiom (Where is it coming from and how to fix it?) 【发布时间】:2016-03-22 00:12:01 【问题描述】:

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

我对该错误进行了一些研究,并找到了一些可能的解决方案,但似乎都没有完全奏效。这些解决方案包括将ignoresSiblingOrder 转换为false,并将纹理指定为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 版本。

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

这只是精灵套件的错误,还是我的代码或资产的合法错误?

谢谢!

【问题讨论】:

这个错误仍然存​​在于 Xcode 7.3 Beta 中。来吧苹果 如果直接从地图集中加载纹理,而不是通过使用 initWithImagedNamed:@"somestring" 和类似方法,这确实会“消失”。 【参考方案1】:

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

【讨论】:

感谢您的信息。我会忽略它,因为它不会影响应用程序。附带说明一下,我认为您认为它是 Xcode 7.2 的错误是正确的,因为我刚刚更新,这就是我开始看到错误的时候。谢谢! 链接实际上试图解决问题,忽略问题并等待修复是个好主意吗?我真的不想围绕一个错误重构我的代码。 @3366784 什么问题?我相信这是一个错误,今天我有这个“问题”的应用程序被批准并发布了。它工作得很好,所以我认为忽略它是完全安全的 我也有这个问题,只是在 iPhone 上(不是在 iPad 上) @Burundanga 我的意思是警告而不是问题。【参考方案2】:

产品 > 清洁

似乎可以解决问题。

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

【讨论】:

我从 Assets.xcassets 中删除了宇宙飞船资产,清理了投影,并删除了 CUICatalog:无效请求:请求子类型而不指定我遇到的成语错误。 (XCode 7.2.1)

以上是关于CUICatalog:无效请求:请求子类型而不指定成语(它来自哪里以及如何修复它?)的主要内容,如果未能解决你的问题,请参考以下文章

React Native PushNotificationIOS:CUICatalog:提供的资产名称无效:(null)

springmvc中@RequestMapping的参数consumes无效

CUICatalog: Invalid asset name supplied: '(null)'

求子序列(状态压缩)

指定的文件名无效或太长,请指定另一个文件名

xcode工程编译错误之iOS解决CUICatalog: Invalid asset name supplied问题