自我是有可能從AnyObject獲得自我?斯威夫特,從AnyObject
拿這個例子:
// Superclass
class ManagedObject {
class func findByID(id: String) -> AnyObject? {
let objects = objectsWithPredicate(NSPredicate(format: "id == %@", id))
return objects.firstObject() // Returns AnyObject
}
}
// Subclass
class User : ManagedObject {
class func returnFirstSelf() -> Self? {
return findById("1") // This doesn't work because it returns AnyObject, but I need Self.
}
}
如果沒有,什麼是最好的替代方法,以確保調用User.returnFirstSelf()
時,編譯器爲回User
,並調用UserSubclass.returnFirstSelf()
時,還給一個UserSubclass
。
遺憾的是沒有。 「'Self'只在協議中或作爲類方法的結果;您是否指'ManagedObject'?」 – Baub 2014-09-18 23:32:54
@BryanChen又導致了另一個錯誤「‘用戶’是無法轉換爲‘自我’」 – 2014-09-18 23:42:57
什麼是實現什麼樣的最佳方式?你能否更正式地解釋一下你想做的事情? – matt 2014-09-18 23:52:52