【问题标题】:ios keyed archive Sprite Kit decode error: SKTexture: Error loading image resource: "Missing Resource.png"ios键控存档Sprite Kit解码错误:SKTexture:加载图像资源时出错:“Missing Resource.png”
【发布时间】:2014-03-27 23:02:18
【问题描述】:

当我存档 SKLabelNodes 和 SKShapeNodes(我没有尝试过 SKSpriteNotes)时没问题,但是当我从存档中提取精灵时,我得到 SKTexture: Error loading image resource: "Missing Resource.png"。

下面是一些演示问题的示例代码:

-(id)initWithSize:(CGSize)size {    
    if (self = [super initWithSize:size]) {
        /* Setup your scene here */

        self.backgroundColor = [SKColor colorWithRed:0.15 green:0.15 blue:0.3 alpha:1.0];

        SKLabelNode *const myLabel = [SKLabelNode labelNodeWithFontNamed:@"Chalkduster"];

        myLabel.text = @"Hello, World!";
        myLabel.fontSize = 30;
        myLabel.position = CGPointMake(CGRectGetMidX(self.frame),
                                       CGRectGetMidY(self.frame));

        // Archive
        NSFileManager *const fm = [NSFileManager defaultManager];
        NSURL *const dir = [fm URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask][0];
        NSURL *const archive = [dir URLByAppendingPathComponent:@"example"];
        [NSKeyedArchiver archiveRootObject:myLabel toFile:archive.path];

        // Unarchive
        SKLabelNode *const arLabel = [NSKeyedUnarchiver unarchiveObjectWithFile:archive.path];
        myLabel.position = CGPointMake(CGRectGetMidX(self.frame) + 30,
                                       CGRectGetMidY(self.frame) + 30);


        [self addChild:myLabel];
        [self addChild:arLabel];
    }
    return self;
}

知道我做错了什么吗?

【问题讨论】:

    标签: ios sprite-kit nskeyedarchiver


    【解决方案1】:

    此代码对我有用。两个标签都会显示,没有“缺少资源”图标。

    我把它放在 SKScene 的 init 中,就像你在上面那样,当用户按下按钮时也运行它。在 iPhone Retina 模拟器上进行了测试,包括普通和 64 位、iOS 7.0 和 7.1 以及带有 iOS 7.1 的 iPod Touch 5G。

    我建议将此代码放入新创建的 Sprite Kit 项目中,以验证它是否也适合您。如果是,那么问题一定出在您的项目上。如果即使在一个新项目中它仍然无法正常工作,那么......我不知道。如果您不使用 Xcode 5.1,也许您可​​能想要更新 Xcode。

    【讨论】:

    • 感谢您的评论,真的很有帮助。我的 Xcode 是最新的,但我没有下载 7.0 版的模拟器。看到您在各种设备上进行了测试,包括运行 7.0 的设备,我尝试下载此模拟器。嘿presto,它适用于7.0,但不适用于我的7.1。所以我猜答案是它是 7.1 Simulator 中的一个错误。再次感谢,真的很有帮助。
    • 对我来说也适用于 7.1,包括模拟器和设备。在新创建的项目中尝试您的代码,看看它是否有任何不同
    • 是的已经尝试了一个新创建的项目,没有区别只适用于7.0
    • 我在我的项目中遇到了同样的问题(SKLabelNode),此外,我可以在新的SpriteKit 项目中重现该问题(只需将上述代码粘贴到生成的MyScene initWithSize)。我正在使用 Xcode 版本 5.1.1 (5B1008)。此外,我的模拟器行为与@HowardLovatt 相同:如果我的部署目标为 7.0 并在 7.0 模拟器上运行,则可以避免该错误;所有其他组合都会导致错误。
    • 对此有何更新?我有同样的问题,iOS 8 中的非归档作品,7.1 中的破坏纹理。我在 SKSpriteNode 上使用它
    猜你喜欢
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-06
    • 2012-04-27
    • 2014-01-31
    • 1970-01-01
    相关资源
    最近更新 更多