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

Popular posts from this blog

amazon web services - S3 Pre-signed POST validate file type? -

c# - Check Keyboard Input Winforms -