ios keyed archive Sprite Kit解码错误:SKTexture:加载图片资源时出错:" Missing Resource.png"

时间:2014-03-27 23:02:18

标签: ios sprite-kit nskeyedarchiver

当我存档SKLabelNodes和SKShapeNodes(我没有尝试过SKSpriteNotes)没问题,但是当我从存档中提取精灵时,我得到SKTexture:加载图像资源时出错:&#34; Missing Resource.png&#34;。< / p>

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

-(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;
}

知道我做错了吗?

1 个答案:

答案 0 :(得分:2)

此代码适用于我。两个标签都显示出来,没有&#34;缺少资源&#34;图标。

我把它放在SKScene的init中,如上所述,并在用户按下按钮时运行它。在iPhone Retina Simulator上测试,包括普通和64位以及iOS 7.0和7.1以及带iOS 7.1的iPod Touch 5G。

我建议将此代码放在新创建的Sprite Kit项目中,以验证它是否也适合您。如果是,问题必须与您的项目有关。如果它甚至在新项目中仍然无法工作,那么...我不知道。如果您没有使用Xcode 5.1,也许您可​​能想要更新Xcode。