【发布时间】:2014-09-08 19:17:28
【问题描述】:
我有一个 sprite kit 应用程序,我已经在我的 32 位设备上进行了全面测试。我最近发现我的应用在 64 位设备上运行时会在启动时崩溃。
此代码在我的 init 方法中,用于继承自 SKNode 的类。
self.sprite = [SKSpriteNode spriteNodeWithImageNamed:[_properties objectForKey:@"Sprite"]];
[self.sprite setScale:BUILDING_SCALE];
[self addChild:_sprite];
该应用仅在 64 位模拟器上的 addChild 行崩溃。
我尝试在32位模拟器上打印出self.sprite的描述:
<SKSpriteNode> name:'(null)' texture:[<SKTexture> 'image1.png' (266 x 76)] position:{0, 0} size:{53.200001, 15.2} rotation:0.00
再次在 64 位 模拟器上:
<SKSpriteNode> name:'(null)' texture:['nil'] position:{0, 0} size:{53.200000762939453, 15.199999809265137} rotation:0.00
另外一件奇怪的事情是,如果我在精灵第一次初始化的那一行放了一个断点,然后越过,精灵是有效的。
有什么想法吗?
调用栈:
【问题讨论】:
-
什么类型的崩溃?日志中的任何内容,即错误消息?调用堆栈是什么?
-
EXC_BAD_ACCESS(代码=1,地址=0x30)。我将添加调用堆栈的屏幕截图。控制台中没有任何内容。
-
添加异常断点并验证上述代码是实际崩溃的 addChild 调用。并检查 _properties 为 sprite 键返回的内容。
-
我有一个异常断点。它在 addChild 处停止。 _properties 返回正确的图像文件名。
-
您是否尝试过清理项目以及从设备/模拟器中删除应用程序?
标签: ios objective-c ios7 sprite-kit skspritenode