【发布时间】:2015-06-21 08:12:36
【问题描述】:
我正在尝试将数据保存到 coredata,但我从 insertIntoManagedObjectContext 收到“在展开可选值时意外发现 nil”错误。 我仔细检查了我的实体(文章)、属性(articleID、isFavorite)的命名。
但是我找不到错误的原因。
func saveArticleAsFav(articleID: Int){
let isFav = true
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let managedContext = appDelegate.managedObjectContext!
let entity = NSEntityDescription.entityForName("Article", inManagedObjectContext: managedContext)
// Error here:
let item = NSManagedObject(entity: entity!, insertIntoManagedObjectContext: managedContext)
item.setValue(articleID, forKey: "articleID")
item.setValue(isFav, forKey:"isFavorite")
var error: NSError?
if !managedContext.save(&error){
println("Could not save \(error), \(error?.userInfo)")
}
articleLocalData.append(item)
println(self.articleLocalData)
}
编辑:我尝试初始化 coredata:
import Foundation
import CoreData
class saveArticleAsFav {
var articleLocalData = [NSManagedObject]()
var context:NSManagedObjectContext
init(context:NSManagedObjectContext) {
self.context = context
}
func saveArticleAsFav(articleID: Int){
let isFav = true
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let managedContext = appDelegate.managedObjectContext!
let entity = NSEntityDescription.entityForName("Article", inManagedObjectContext: managedContext)
let item = NSManagedObject(entity: entity!, insertIntoManagedObjectContext: managedContext)
item.setValue(articleID, forKey: "articleID")
item.setValue(isFav, forKey:"isFavorite")
var error: NSError?
if !managedContext.save(&error){
println("Could not save \(error), \(error?.userInfo)")
}
articleLocalData.append(item)
println(self.articleLocalData)
}
}
然后我在我的邮件表格视图中调用 func: 并收到以下错误: “无法使用类型为 '(articleID: Int)' 的参数列表调用类型 'saveArticleAsFav' 的初始化程序”
saveArticleAsFav(articleID: articleID!)
【问题讨论】:
-
请不要覆盖您之前的问题。否则其他人将无法理解答案。