Type does not have a member

前端 未结 2 726
别那么骄傲
别那么骄傲 2020-11-27 22:31

I\'m playing around with a Swift playground working on a new class. For some reason I keep getting an error that the class \"does not have a member type\" with the name of

相关标签:
2条回答
  • 2020-11-27 23:00

    I agree with @Antonio The other way might be to create struct if you don't want to use init:

    class DataModel {
    
        struct MyStruct {
            static var myCalendar:NSCalendar = NSCalendar.autoupdatingCurrentCalendar()
            static let now  = NSDate()
        }
    
        var myData = [NSDate : Float]()
    
        var components = MyStruct.myCalendar.components(.CalendarUnitYear | .CalendarUnitMonth, fromDate: MyStruct.now)
    }
    

    Test

    var model:DataModel = DataModel()
    var c = model.components.year  // 2014
    
    0 讨论(0)
  • 2020-11-27 23:10

    You cannot initialize an instance class property referencing another instance property of the same class, because it's not guaranteed in which order they will be initialized - and swift prohibits that, hence the (misleading) compiler error.

    You have to move the initialization in a constructor as follows:

    let components: NSDateComponents
    
    init() {
        self.components = myCalendar.components(.CalendarUnitYear | .CalendarUnitMonth, fromDate: now)
    }
    
    0 讨论(0)
提交回复
热议问题