我是 Swift 编程的新手。我在我的应用程序中使用 CoreData 作为数据库选项。
我正在使用 NSManagedObject (deleteObject) 删除表中的 lastObject、firstObject 和整行。
我想使用存储在变量中的值删除表中的特定行。我没有使用 TableView (我没有任何索引路径),这个删除操作是我从我的应用程序服务器收到响应后的后台进程。
任何链接或教程或建议都会有所帮助。
提前致谢!!!
删除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 表由列“pname”和“pvalues”组成。 我想删除一个特定的参数 pname ='server_timeout'。
考虑“Params”表是否包含 10 行,并且“pname”=“server_timeout”可能出现在索引 5、6 处。
如何在此记录列表中找到“pname”(即“server_timeout”)并将其删除?
请您参考如下方法:
如何创建一个谓词来过滤掉那些首先具有 server_timeout 的 pname 值的列表。
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 闭包中。我不知道你是如何设置你的核心数据的,但你可能想考虑线程来最大化感知性能。
