我是Swift编程的新手。我在我的应用程序中使用CoreData作为数据库选项。
我使用NSManagedObject(deleteObject)删除表中的lastObject,firstObject和整行。
我想通过使用存储在变量中的值来删除表中的特定行。我没有使用表视图(我没有任何索引路径),这个删除操作是我从我的应用程序服务器得到响应后的后台进程。
任何链接,教程或建议都会有所帮助。
提前致谢!!!
删除lastObject的代码
if var results1 = context.executeFetchRequest(requestParams, error: nil) as? [Params] {
println("\n Params Results count : \(results1.count)")
for param in results1{
for var n = 0 ;n < results1.count; ++n
{
let lastPerson = (results1 as NSArray).lastObject as Params
context.deleteObject(lastPerson)
var savingError: NSError?
context.save(&savingError)
}
}
}
Params表由列&#39; pname&#39;组成。和&#39; pvalues&#39;。 我想删除一个特定的参数pname =&#39; server_timeout&#39;。
考虑是否&#39; Params&#39;表由10行组成,&#39; pname&#39; =&#39; server_timeout&#39;可能出现在指数5,6。
如何找到&#39; pname&#39; (即&#39; server_timeout&#39;)在此记录列表中删除它?
答案 0 :(得分:3)
如何创建一个谓词,该谓词首先将列表过滤到pname
值为server_timeout
的人。
context.performBlock {
requestParams.predicate = NSPredicate(format: "pname == %@", "server_timeout")
if let results = context.executeFetchRequest(requestParams, error: nil) as? [Params] {
for param in results {
context.deleteObject(param)
}
var error: NSError?
if !context.save(&error) {
println(error)
}
}
}
如您所见,我已将整个搜索和删除放在performBlock
闭包中。我不知道你是如何设置你的核心数据的,但是你可能想要考虑线程来最大化感知性能。