2016-09-27 10 views
0

は、私は私のコア・データエンティティを更新したいと私のコードは次のとおりです。コアデータのオブジェクトを更新するには?

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に新しい行を追加しています。

+0

なぜデータを保存した後に 'self.viewDidLoad()'を呼び出したのですか? – CodeChanger

+0

カートを再計算するには –

+0

あなたは 'quantity '値だけを更新しますか? –

答えて

0

現在のオブジェクトffquantityを更新する場合は、これらの行を試してください。

 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") 
     } 

なぜself.viewDidLoad()に電話しましたか?

次のコードでは、現在のアイテムを更新するのではなく、新しいアイテムを作成していました。

+0

変更量に価格を掛けて再度計算するには –

+0

今はうまくいきましたが、変更されたときにビューを更新する必要があります –

+0

OK完璧! ;)しかし、直接viewDidLoadを呼び出すことはお勧めできません:あなたは少しリファクタリングする必要がありますか? – thedjnivek

関連する問題