我是使用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的变化有关,但由于我是新手,我无法理解。任何帮助调试都将不胜感激。
答案 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) }`