类型没有成员

use*_*252 10 swift swift-playground

我正在玩一个新班级的Swift游乐场.由于某种原因,我不断收到一个错误,即类"没有成员类型",其名称为常量定义的三行.这是代码:

import Foundation
class DataModel {
    let myCalendar = NSCalendar.autoupdatingCurrentCalendar()

    var myData = [NSDate : Float]()
    let now  = NSDate()
    let components = myCalendar.components(.CalendarUnitYear | .CalendarUnitMonth, fromDate: now)
}
Run Code Online (Sandbox Code Playgroud)

Xcode Beta6在倒数第二行给我一个错误,说"DataModel.Type没有名为'myCalendar'的成员

虽然我认为它不应该有所作为,但我已经尝试将myCalendar定义为var.

Ant*_*nio 9

您无法初始化引用同一类的另一个实例属性的实例类属性,因为它不能保证它们将被初始化的顺序 - 并且swift禁止它,因此(误导性)编译器错误.

您必须在构造函数中移动初始化,如下所示:

let components: NSDateComponents

init() {
    self.components = myCalendar.components(.CalendarUnitYear | .CalendarUnitMonth, fromDate: now)
}
Run Code Online (Sandbox Code Playgroud)