假設我有一個NSManagedObject
的子類MyObject
和一個子類User
。初始化NSManagedObject子類時的繼承
這些子類中的每一個都有一個特定的插入方法,稱爲class func createInManagedObjectContext(managedObjectContext: NSManagedObjectContext, propertiesDictionary: NSDictionary) -> User/MyObject?
,它本身使用NSEntityDescription.insertNewObjectForEntityForName
方法插入一個新的實體。
如何正確使用繼承來設置User
對象中的MyObject
屬性?
我應該建立在User
法新MyObject
,從這個新對象設置User
屬性然後取出MyObject
所以它不會救?還是我想在這裏重新發明輪子?
更新,代碼:
class func createInManagedObjectContext(managedObjectContext: NSManagedObjectContext, propertiesDictionary: NSDictionary) -> MyObject?
{
let newObject = NSEntityDescription.insertNewObjectForEntityForName("MyObject", inManagedObjectContext: managedObjectContext) as MyObject
newObject.property = propertiesDictionary[「property」]
}
override class func createInManagedObjectContext(managedObjectContext: NSManagedObjectContext, propertiesDictionary: NSDictionary) -> User?
{
let newObject = NSEntityDescription.insertNewObjectForEntityForName("User", inManagedObjectContext: managedObjectContext) as User
newObject.name = propertiesDictionary[「name」]
}
這是我的代碼結構是什麼樣子。但是,當我撥打User
時致電createInManagedObjectContext
,即使使用了override關鍵字,MyObject
中的屬性「屬性」仍未設置。我錯過了什麼?
感謝
我覺得我的困惑在於'insertNewObjectForEntityForName'方法。由於這兩個自定義初始化程序都使用這種方法,導致我認爲/認爲兩個對象會受到攻擊 – 2015-02-09 23:23:56
請參閱代碼示例更新 – 2015-02-10 03:07:33