如何设置一些默认值或启动核心数据实体值?

时间:2016-01-18 05:45:29

标签: ios swift nsmanagedobject viewdidload

我正在尝试为核心数据实体保存一些默认值或启动数据。我的应用扫描代码并将相应的数据存储到核心数据(实体是ScannedVisitor),这部分可行。但我喜欢有一个默认条目。

我有:

override func viewDidLoad() {
    super.viewDidLoad()

    // scanner code
    self.cameraLayerWithBorder()

    // Default Entry
    let defaultItem = NSEntityDescription.insertNewObjectForEntityForName("ScannedVisitor", inManagedObjectContext: moContext) as! ScannedVisitor
    defaultItem.sLastName = "Test"
    defaultItem.sCompany = "Test"
    defaultItem.sPhone = "0123456789"
    defaultItem.sEmail = "info@test.com"
    defaultItem.sJobTitle = "Job name"
    defaultItem.sCity = "New York"

    // end test Default Entry
}

但这会导致我的应用崩溃。

或者我应该以某种方式将代码添加到ScannedVisitor.swift?

[修改

以下是我收到的错误消息的屏幕截图:

enter image description here

[编辑2 ]

我删除了已扫描的代码和数据,现在我的应用程序立即崩溃并吐出消息"致命错误:在解开可选值时意外发现nil" 我换了!为?

  let defaultItem = NSEntityDescription.insertNewObjectForEntityForName("ScannedVisitor", inManagedObjectContext: moContext) as? ScannedVisitor
        defaultItem!.sLastName = "Test"
        defaultItem!.sCompany = "Test"
        defaultItem!.sPhone = "0123456789"
        defaultItem!.sEmail = "info@test.nl"
        defaultItem!.sJobTitle = "Job name"
        defaultItem!.sCity = "New York"

浏览我看到人们重命名实体类,如此

ScannedVisitor

MyProject.ScannedVisitor
数据模型检查器中的

。但是当我尝试这个时,XCode 7会删除句点并立即将其重写为

MyProjectScannedVisitor

[编辑3 ]

如何确保默认条目只添加一次而不是每次加载?

我想通过检查属性但我收到错误:

    override func viewDidLoad() {
        super.viewDidLoad()
...    
let tmpCheckEntry: ABRecordRef = ABRecordCopyValue("Test", kABPersonLastNameProperty).takeRetainedValue() as? String

但这导致EXC_BAD_ACCESS ....... ??

0 个答案:

没有答案