如何更新核心数据中的对象?

时间:2016-09-27 08:45:35

标签: ios swift uitableview core-data

我想更新我的核心数据实体,我的代码是:

let ff: Cart!
let indexPath = self.tableView?.indexPathForSelectedRow
ff = self.cart[indexPath!.row]

let app = UIApplication.sharedApplication().delegate as! AppDelegate
let context = app.managedObjectContext

let entity = NSEntityDescription.entityForName("Cart", inManagedObjectContext: context)
let cartt = Cart(entity: entity!, insertIntoManagedObjectContext: context)
cartt.name = ff.name
cartt.price = Double(ff.price!)
cartt.rest_id = ff.rest_id
cartt.longg = ff.longg
cartt.latt = ff.latt
cartt.item_id = ff.item_id
cartt.restName = ff.restName
cartt.cookTime = ff.cookTime

ff.setValue(Int(txt.text!), forKey: "quantity")

do{
    try context.save()
    self.viewDidLoad()
    print(cartt.longg)
    print(cartt.delivery)
    print("saved")

}catch{
    print("could not save")
}

该元素正在核心数据中进行更新,但它也在我的tableView中添加了一个新行,其中包含空数据。

1 个答案:

答案 0 :(得分:0)

如果您想更新当前对象quantity的{​​{1}},请尝试使用这些行。

ff

你为什么打电话给 let ff: Cart! let indexPath = self.tableView?.indexPathForSelectedRow ff = self.cart[indexPath!.row] let app = UIApplication.sharedApplication().delegate as! AppDelegate let context = app.managedObjectContext ff.setValue(Int(txt.text!), forKey: "quantity") do{ try context.save() self.viewDidLoad() // why you call this line here ? print(cartt.longg) print(cartt.delivery) print("saved") }catch{ print("could not save") }

在下一个代码中,您创建了一个新项目,而不仅仅是更新当前代码。