ios - Swift: Required initializer giving me an error message -
i have class named alarm inheriting nsobject, , in it, have property i'm having issue with, alarmlasttriggereddate:
class alarm: nsobject { var alarmlasttriggereddate: nsdate override init() { super.init() } func encodewithcoder(acoder: nscoder) { acoder.encodeobject(alarmlasttriggereddate, forkey: "alarmlasttriggereddate") } required init(coder adecoder: nscoder) { if let alarmlasttriggereddatedecoded = adecoder.decodeobjectforkey("alarmlasttriggereddate") as? nsdate { alarmlasttriggereddate = alarmlasttriggereddatedecoded } } }
i'm new swift, , not sure why i'm getting following errors:
@override init: property 'self.alarmlasttriggereddate' not initialized @ super.init call @required init: property 'self.alarmlasttriggereddate' not initialized @ implicitly generated super.init call
it seems way fix problem initialized in both places, that's redundant code, , seems wrong. missing something?
the compiler must sure every non optional property initialized:
- before call
super init
performed - and before object initialisation has been completed
that's why need populate alarmlasttriggereddate
inside bot initializers.
and no, it's not redundant code since use 1 of 2 initializers create alarm
object.
Comments
Post a Comment