例如,这里是我的代码中添加值的部分
do {
let request = NSFetchRequest<NSFetchRequestResult>(entityName: "users")
let results = try context.executeFetchRequest(request)
if results.count > 0 {
for item in results as! [NSManagedObject] {
let fName = item.valueForKey("firstName")
let lName = item.valueForKey("lastName")
print(lName!, lName!)
}
}
} catch {
print("There was error getting data")
}
假设我有10个用户,现在我想
1.删除“DOW”lastName
的用户
2.前2位用户和最后2位用户?
3.此外,lastName
的所有用户都以“D”开头
由于 博尔纳
答案 0 :(得分:2)
您可以编码:
if results.count > 0 {
for item in results as! [NSManagedObject] {
let fName = item.valueForKey("firstName") as! String
let lName = item.valueForKey("lastName")
print(lName!, lName!)
if fName.contains("DOW"){
appDelegate.managedObjectContext.deleteObject(item)
}
}
}
或者只是获取你想要的对象NSPredicate并将其删除 代码:
let fetchRequest = NSFetchRequest(entityName: "users")
fetchRequest.predicate = NSPredicate(format: "firstName beginswith[c] %@", "D")
fetchRequest.returnsObjectsAsFaults = false
do{
let fetchResults = try appDelegate.managedObjectContext..executeFetchRequest(fetchRequest)
if fetchResults.count>0 {
appDelegate.managedObjectContext.deleteObject(fetchResults[0])
} else {
// no data
}
}catch{
//error
}
答案 1 :(得分:0)
这个问题听起来像是家庭作业。删除前2项和后2项的问题是数据是无序存储的。除非提供排序顺序,否则您可能会从获取请求中获取不同的数据集。