Код в xcode 6 больше не работает в xcode 6.3.1
Перед этим, чтобы удалить значение ячейки в UItableview, я использую следующий код, и он работает как надо.... но теперь он дает мне ошибку. ОШИБКА: Невозможно вызвать "deleteObjects" со списком аргументов типа "(NSManagedObject)" в следующей строке:
context.deletedObjects(results[indexPath.row] as NSManagedObject)
Как это исправить? Коды в функции участвуют:
let cell: UITableViewCell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "Default")
var appDel = (UIApplication.sharedApplication().delegate as! AppDelegate)
var context = appDel.managedObjectContext
var request = NSFetchRequest(entityName: "UserCholesterol")
request.returnsObjectsAsFaults = false
var results: NSArray = context!.executeFetchRequest(request, error: nil)!
context.deletedObjects(results[indexPath.row] as NSManagedObject)
context!.save(nil)
totalEntries = totalEntries - 1
tblLog.reloadData()
2 ответа
Решение
Удаление управляемого объекта выполняется с context.deleteObject(anObject)
, Попробуй это:
context.deleteObject(results[indexPath.row] as NSManagedObject)
deletedObjects
это просто свойство NSManagedObjectContext
, а не метод. Но есть метод, называемый - deleteObject:
,
Попробуйте заменить на эту строку кода:
context.deleteObject(results[indexPath.row] as! NSManagedObject) // in Xcode 6.3 and above,you have to add ! after `as` keyword.