簡體   English   中英

如何為CoreData中的NSManaged屬性賦予初始值?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM