-
我想从CoreData中删除自定义单元格中UILabel提供的单个字符串。因此,从表视图中删除一行是行不通的。
-
此外,我想检查CoreData值中是否有特定的字符串。
例如:
我有一个名为"收藏夹"的实体,其属性名为"服务",插入的字符串名为"micro"。我想删除"micro"。此外,我想检查"micro"(例如)是否在属性"services"和实体"Favorites"的字符串中。
我试过这个:
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"中给出错误,称"使用未解析的标识符‘error’"
2(b)。
也尝试过这个,但崩溃了应用程序输出给
"打印错误描述:(NSError)error="超出范围"
(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号有什么帮助吗?
1。我认为你需要这样的东西:
contexto.deleteObject(p!)
do {
try contexto.save()
print("Borrado ")
} catch _ as NSError {
print( "Error en delete")
}