我回顾了我在Xcode 7.0 beta 3 (7A152u)
中执行的项目,其中我使用以下extension
向CGPoint
添加float2
初始化程序。 (下面的代码与WWDC2015演示项目DemoBots中使用的代码完全相同)早在7月下旬这个工作正常,但现在使用Xcode 7.0 GM (7A218)
我收到了错误:
TEST.swift:32:11: 'self' used before all stored properties are initialized
我查看了各种发行说明,但找不到任何相关的内容,任何人都可以帮助我或指出我正确的方向,为什么现在失败了,也许如何解决它?
// Extend `float2` to add an initializer from a `CGPoint`.
extension float2 {
// MARK: Initialization
/// Initialize with a `CGPoint` type.
init(_ point: CGPoint) {
x = Float(point.x) // << Above Error Here
y = Float(point.y) // << Above Error Here
}
}
答案 0 :(得分:2)
如果您使用以下问题,问题就解决了:
init(_ point: CGPoint) {
self = float2(x: Float(point.x), y: Float(point.y))
}
或
init(_ point: CGPoint) {
self.init(x: Float(point.x), y: Float(point.y))
}
或者,如Martin R所指出的那样:
init(_ point: CGPoint) {
self.init()
x = Float(point.x)
y = Float(point.y)
}
第二种方式用于latest DemoBots project中的float2
扩展名。
x
,y
等只是{ get set }
计算属性。