2014-09-10 100 views
0

我的项目从Xcode 6 Beta 1 - Xcode 6 Beta 6没有错误/警告。当我更新到Beta 7时,Xcode开始告诉我我的项目中有大约170个错误。主要是SpriteKit方法/对象/属性。它仍然给我错误的Xcode 6的实际版本。我知道这些事情不应该是一个问题,因为我完全没有问题在过去建立完全相同的代码。举个例子:自发的Swift编译器错误

enter image description here

这种东西一切发生在我的项目。我已经卸载/重新安装了Xcode Betas,以及几次发布,但无济于事。这是我最大的项目,我非常沮丧,我无法弄清楚这一点。我不想在Objective-C中重写我的整个项目。我打电话给Apple开发者支持,他们推荐的唯一的东西我已经尝试过了,而且他们没有工作。我似乎也无法在网上找到其他人有类似问题。

感谢您的任何帮助。

回答

1

我敢打赌,这是关于隐含的解包选项变成“正常”选项。

尝试追加隐含展开的可选操作!physicalBody被引用的每一行,如:

blockSprite.physicalBody!.categoryBitMask = ... 

如果确实解决了问题,那么更安全的代码,我建议你到指定的新实例SKPhysicalBody给一个变量,做所有的初始化,然后把这个变量赋值给blockSprite.physicalBody。这样你就不必处理可选项。作为一般规则,即使您100%确定可选包含非零值,最好避免隐式解包选项 - 在运行时避免头痛,如果碰巧解包变量实际上为零。

+0

再次添加隐式展开的可选操作员在几个地方和建筑后,我收到了同样的错误在这些线上。 – AaronChapmanDev 2014-09-10 18:48:44

+0

你可以发布修改后的代码吗?无论是在你的问题中,还是在主旨(或类似) – Antonio 2014-09-10 18:56:43

1

它看起来像SKNodephysicsBody财产现在是一个可选项。造成这种情况的最简单的解决将是创建一个SKPhysicsBody实例,配置它,然后将其分配给您的节点:

let blockSprite = SKSpriteNode(...) 
blockSprite.position = ... 
// etc 
let physicsBody = SKPhysicsBody(rectangleOfSize: blockSprite.size) 
physicsBody.categoryBitMask = ContactCategory.block 
// etc 
blockSprite.physicsBody = physicsBody