1
我儘量保持我的NSManagedObject-子類整齊和乾淨,因爲他們生成,但我想添加某些functionallity。子類的NSManagedObject的子類
我的第一個想法是子類的子類。
例如,產生我的帳戶,看起來像這樣:
import Foundation
import CoreData
class Account: NSManagedObject {
@NSManaged var displayName: String
@NSManaged var host: String
@NSManaged var port: NSNumber
@NSManaged var schema: String
@NSManaged var username: String
}
比我的子類,並添加一個類FUNC初始化一個新的。
import Foundation
import CoreData
class AccountModel: Account {
static var entityName = "Account"
class func createAccount(context: NSManagedObjectContext) -> AccountModel {
let entity = NSEntityDescription.entityForName(entityName, inManagedObjectContext: context)
let account = AccountModel(entity: entity!, insertIntoManagedObjectContext: context)
return account
}
}
我的單元測試工作正常,這部分:
func testCreateAccount(){
let account = AccountModel.createAccount(managedObjectContext!)
dump(account)
let accounts = AccountModel.getList(managedObjectContext!)
XCTAssertEqual(accounts.count, 1, "There is no account created, yet")
}
但是如果添加新功能或計算屬性爲AccountModel我有一個BAD_ACCESS錯誤。
class AccountModel: Account {
[...]
func foo(){
println("bar")
}
}
而且在我的測試:
let account = AccountModel.createAccount(managedObjectContext!)
account.setValue("localhost", forKey: "host")
account.setValue(8080, forKey: "port")
account.setValue("https", forKey: "schema")
account.foo()
帳戶接縫是一個實例,從帳戶,而不是從AccountModel。
你能幫我解決這個從模型類中分離生成的類的問題嗎?
非常感謝。 ps。