我尝试从查询(更新)更新后续的核心数据集。出于某种原因,代码似乎没有保存,没有抛出错误,我无法弄清楚原因。
这里是代码提取:
var appDel: AppDelegate = (UIApplication.sharedApplication().delegate as AppDelegate)
var context: NSManagedObjectContext = appDel.managedObjectContext!
if itemId != nil {
var request = NSFetchRequest(entityName:"CheckListItem")
request.returnsObjectsAsFaults = false
request.predicate = NSPredicate(format:"itemId == '\(itemId!)' ")
var queryResults:NSArray = context.executeFetchRequest(request, error: nil)!
if queryResults.count > 1 {
CLAlog("DSF-updateChecklistItem-update: Item ID Provided, but a singluar item not found in Core Data", 1)
abort()
}
// Update Existing Item
queryResults[0].setValue(itemList["itemTitle"]!, forKeyPath: "itemTitle")
queryResults[0].setValue(itemList["itemDescription"]!, forKeyPath: "itemDescription")
queryResults[0].setValue(itemType, forKeyPath: "itemType")
//queryResults[0].setValue(itemList["itemDisplayOrder"], forKeyPath: "itemDisplayOrder")
var contextError: NSError? = nil
context.save(&contextError)
}
您可以提供任何帮助。
答案 0 :(得分:0)
尝试将queryResults var的类型从NSArray更改为AnyObject,如下所示:
var queryResults:[AnyObject] = context.executeFetchRequest(request, error: nil)
检查您是否在queryResults上获得了正确的结果,并检查您设置的值是否为零。
println(queryResults[0])
println(itemList["itemTitle"])