I have following code example (from PlayGround):
class Serializable : NSObject{
override init() { }
}
class Device : Serializable{
var uuid:String
override init() {
println("init ")
self.uuid = "XXX"
self.uuid = Device.createUUID()
println(self.uuid)
}
class func createUUID() -> String{
return "XXX2"
}
}
var device = Device()
You can notice that I implemented createUUID
method as static.
But why I can't call this method from init
not in static way? :
class Serializable : NSObject{
override init() { }
}
class Device : Serializable{
var uuid:String
override init() {
// tried
// super.init()
println("init ")
self.uuid = "XXX"
self.uuid = self.createUUID() // ERROR
self.uuid = createUUID() // ERROR
println(self.uuid)
// tried
// super.init()
}
func createUUID() -> String{
return "XXX2"
}
}
var device = Device()
Without inheritance it works properly:
class Device {
var uuid:String
init() {
println("init ")
self.uuid = "XXX"
self.uuid = self.createUUID()
println(self.uuid)
}
func createUUID() -> String{
return "XXX2"
}
}
var device = Device()