Я хотел бы удалить одну строку, предоставленную UILabel в пользовательской ячейке, из CoreData. Таким образом, для удаления строки из tableview не работает.Извлечь строку сравнения и удаления из CoreData
Кроме того, я хотел бы проверить, есть ли конкретная строка в значении CoreData.
Например:
У меня есть сущность с именем «Избранное» с атрибутом, именуемым «услуги» со строкой, что я вставленным под названием «микро». Я хочу удалить «микро». Кроме того, я хочу проверить, есть ли «микро» (например) в строках из атрибутов «службы» и сущности «Избранное».
Я попытался это:
1.
let serString = servico.text
let appDel:AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let contexto:NSManagedObjectContext = appDel.managedObjectContext
let entidade = NSEntityDescription.entityForName("Favorites", inManagedObjectContext: contexto)
let pedido = NSFetchRequest(entityName: "Favorites")
pedido.predicate = NSPredicate(format: "service = %@", serString!)
let p:Favorites? = Favorites(entity: entidade!, insertIntoManagedObjectContext: contexto)
contexto.deleteObject(p!)
... но это не удаляя строку "serString"
2. Пробовал так:
var request : NSFetchRequest = NSFetchRequest(entityName: "Favorites");
request.predicate = NSPredicate(format: "services = %s", "micro")
let results : [NSManagedObject] = context.executeFetchRequest(request, error: &error)
if (results.count > 0) {
print("exists") }
else {
//Doesn't exist
}
... но дает ошибку в "& ошибка" говоря "использование неразрешенных идентификатор 'error' '
2 (b).
попытался также это, но сбой приложения выход дает
"Описание Печать ошибки: (NSError) ошибка = "вне области"
(lldb)"
let request : NSFetchRequest = NSFetchRequest(entityName: "Favorites");
request.predicate = NSPredicate(format: "services = %s", "micro")
do {
let results : [NSManagedObject] = try context.executeFetchRequest(request) as! [Favorites]
if (results.count > 0) {
print("exists") }
else {
//Doesn't exist
}
// success ...
} catch let error as NSError {
// failure
print("Fetch failed: \(error.localizedDescription)")
}
ОБНОВЛЕНИЕ:
Этот код, наконец, работал, чтобы удалить строку:
let favoriteFetchRequest = NSFetchRequest(entityName:"Favorites") let predicate = NSPredicate(format: "services = %@", serv) favoriteFetchRequest.predicate = predicate do { let fetchedEntities = try context.executeFetchRequest(favoriteFetchRequest) as! [NSManagedObject] for entity in fetchedEntities { context.deleteObject(entity) try context.save() } } catch let error as NSError { print("Fetch failed: \(error.localizedDescription)") }
Любая помощь на 2.?
У меня есть сущность с именем «Избранное» с атрибутом с именем «services» со строкой, которую я вставил с именем «micro». Я хочу удалить «микро». Кроме того, я хочу проверить, есть ли «микро» (например) в строках из атрибутов «службы» и сущности «Избранное». –