2016-09-24 2 views
0

Как я могу удалить все данные в определенном атрибуте в сущности, я не хочу очищать все атрибуты в сущности, вот что у меня есть сейчас, которое удаляет все атрибуты в объектеУдаление основных элементов данных

func deletObject(){ 
    let fetchRequest = NSFetchRequest() 
    let appDel:AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate 
    fetchRequest.includesPropertyValues = false 
    let context:NSManagedObjectContext = appDel.managedObjectContext 
    let moc = context 
    fetchRequest.entity = NSEntityDescription.entityForName("Cart", inManagedObjectContext: moc) 

    do { 
     if let results = try moc.executeFetchRequest(fetchRequest) as? [NSManagedObject] { 
      for result in results { 
       moc.deleteObject(result) 
      } 
      try moc.save() 
      self.cart = [Cart]() 
      self.tableView.reloadData() 
      totalAmouLa.text = "₦\(Int(totalHoursWorkedSum))" 
     } 
    } catch { 
     print("FAILED") 
    } 

} 

EDIT Я хочу удалить delivery в Cart сущности Image

ответ

1

Вы не можете удалять атрибут из модели Core Data, у ou может только сброс значение.

executeFetchRequest возвращается гарантированно [Cart] на успехе, опциональное связывание никогда не подведет

func deletObject(){ 
    let fetchRequest = NSFetchRequest() 
    let appDel = UIApplication.sharedApplication().delegate as! AppDelegate 
    let context = appDel.managedObjectContext 
    fetchRequest.entity = NSEntityDescription.entityForName("Cart", inManagedObjectContext: context) 

    do { 
     let results = try context.executeFetchRequest(fetchRequest) as! [Cart] 
     results.forEach { $0.delivery = 0.0 } 
     try context.save() 
     self.tableView.reloadData() 
     totalAmouLa.text = "₦\(Int(totalHoursWorkedSum))" 
    } catch { 
     print("FAILED") 
    } 
} 
+0

Ok будет это сбросить все значения для доставки – lordxx

+0

Я думаю, правильный вопрос, чтобы спросить, есть ли способ для перезаписи данных в атрибут – lordxx