使用Swift写入核心数据时出现错误代码的问题

时间:2016-02-16 02:16:58

标签: swift core-data

我是使用Swift进行编码的新手,我正在尝试将两个文本字段写入我的核心数据文件中。我已经通过在线搜索找到了我需要的大部分代码,但是我收到了一个我无法弄清楚的错误。我已经发布了下面的整个保存功能代码,但是我得到了一个“不能在'NSManagedObjectContext'类型的非可选值上使用可选链接”这一行以adminObjectContext开头。

@IBAction func saveData(sender: AnyObject) {
    let entityDescription = NSEntityDescription.entityForName("MatchData", inManagedObjectContext: managedObjectContext)

    let matchData = MatchData(entity: entityDescription!, insertIntoManagedObjectContext: managedObjectContext)

    matchData.teamNumber = teamNumber.text
    matchData.matchNumber = matchNumber.text

    var error: NSError?

    managedObjectContext?.save(error)

    if let err = error {
        status.text = err.localizedFailureReason
    } else {
        teamNumber.text = ""
        matchNumber.text = ""
    }
}

我正在使用最新版本的Xcode,我认为这个问题与Swift的变化有关,但由于我是新手,我无法理解。任何帮助调试都将不胜感激。

1 个答案:

答案 0 :(得分:1)

do, try, catch声明在哪里?如果要将对象保存到managedObjectContext,则必须使用以下语句:do { try manaagedObjectContext.save() } catch { // handle error }

请试一试!希望它有所帮助

`@IBAction func saveData(sender:AnyObject){

让entityDescription:MatchData = NSEntityDescription.insertNewObjectForEntityForName(" MatchData",inManagedObjectContext:managedObjectContext)为! MatchData

entityDescription.teamNumber = self.teamNumber.text
entityDescription.matchNumber = self.matchNumber.text

do { try managedObjectContext.save() } catch { /*Handle error*/  }

打印(entityDescription) }`