Swift 2迁移错误:不再能在SKSpriteNode的指定初始化中传入nil

non*_*tic 4 sprite-kit skspritenode xcode7 swift2

试图将我的项目迁移到Swift 2.

我遇到了很多编译器错误,其中大部分都很容易修复,因为它们只是语法更改.

但是,我不知道处理此错误的最佳方法:

当调用从我的子类的指定初始化器SKSpriteNode我得到错误信息:"类型'的UIColor’不符合协议'NilLiteralConvertible’"传递nilcolor:

import SpriteKit

class MyClass: SKSpriteNode {

  init() {
    let texture = SKTexture(imageNamed: "MyTexture.png")
    super.init(texture: texture, color: nil, size: texture.size())
  }
}
Run Code Online (Sandbox Code Playgroud)

我可以通过传入解决这个问题,UIColor.clearColor()但我觉得这不是处理这个问题的正确方法.

任何建议都非常感激,而且,这里发生了什么变化(当然,解释的链接就足够了)?

fqd*_*qdn 6

在Swift 1.2中,你调用的初始化程序超级用于接受一个隐式展开的颜色选项,因此你能够通过 nil

在Swift 2中,相同的初始化程序不再接受可选项,UIColor如果使用它,则必须通过a (参见docs)

你的传球解决方案UIColor.clearColor()对我来说似乎很合理!