[英]How to give an initial value to NSManaged property in CoreData?
我用Swift。 我有一個CoreData,它有一個名為days的字符串屬性。 我想為此分配一個默認值。 我在我的CoreData模型類中嘗試了它,但它給出了一個錯誤,說“NSManaged屬性不能有初始值” 。
這是我試過的。
@NSManaged var daysAvailable:String = "M"
這其實很簡單。 只需覆蓋NSManagedObject
子類的awakeFromInsert
方法。
class Person: NSManagedObject {
@NSManaged var name: String
@NSManaged var age: NSNumber
override func awakeFromInsert() {
super.awakeFromInsert()
setPrimitiveValue(21, forKey: "age")
setPrimitiveValue("Bob", forKey: "name")
}
}
根據awakeFromInsert
文檔 :
如果要在此方法的實現中設置屬性值,通常應使用原始訪問器方法(setPrimitiveValue:forKey:或 - 更好 - 適當的自定義原始訪問器)。 這可確保將新值視為基准值,而不是將其記錄為相關屬性的可撤消更改。
覆蓋喚醒表單插入以初始化核心數據對象
Override func awakeFromInsert()
{
super.awakeFromInsert()
self.daysAvailable = "M"
}
請查看以下鏈接以獲取更多詳細信息: https : //developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CoreData/Articles/cdManagedObjects.html
如果它是靜態值,您可以在xcode中的CoreData模型編輯器中進行設置。 無需使用'awakeFromFetch'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.