I have this code:
class Dark: NSObject {
class var className: String {
return NSStringFromClass(self)!.componentsSeparatedByString(".").last!
}
var success = 0
class func devour<T: Dark>(params: Int) -> T {
var s = T()
return assign(s, params: params)
}
class func assign<T: Dark>(item: T, params: Int) -> T{
if item.dynamicType === self {
item.success = params
}
return item
}
}
class Black: Dark {
}
class Violet: Dark {
}
Black.className // returns "Black"
Violet.className // returns "Violet"
The problem occurs when I do this:
var ret = Black.devour(5)
ret.success //returns 0 which is suppose to be 5
ret.self // returns {Dark success 0} which is suppose to be {Black success 0}
I want to be able to return the subclass type and not the superclass type when calling devour. I hope someone can help me on this. :) Im really out of ideas.
Aucun commentaire:
Enregistrer un commentaire