Ios 如何在swift 2中从核心数据中删除值

Ios 如何在swift 2中从核心数据中删除值,ios,swift,core-data,Ios,Swift,Core Data,例如,下面是我的代码中添加值的部分 do { let request = NSFetchRequest<NSFetchRequestResult>(entityName: "users") let results = try context.executeFetchRequest(request) if results.count > 0 { for item in results as! [NSMana

例如,下面是我的代码中添加值的部分

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")
    }
do{
let request=NSFetchRequest(entityName:“用户”)
let results=try context.executeFetchRequest(请求)
如果results.count>0{
结果中的项目为![NSManagedObject]{
设fName=item.valueForKey(“firstName”)
设lName=item.valueForKey(“姓氏”)
打印(lName!,lName!)
}
}
}抓住{
打印(“获取数据时出错”)
}
假设我有10个用户,现在我想 1.删除姓氏为“DOW”的用户

2.前两个用户和后两个用户?
3.此外,所有具有
lastName
的用户都以“D”开头

谢谢 Borna

您可以编写以下代码:

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)
        }
    }
}
或者只需获取您想要的对象,然后重新预测并删除它 代码:


这个问题听起来像家庭作业。删除前2项和后2项的问题是数据存储无序。除非提供排序顺序,否则您可能会从fetch请求中获得不同的数据集

谢谢你的信息。我被appDelegate.managedObjectContext.deleteObject(数据)代码的这一部分弄糊涂了(数据)和appDelegate是什么?对不起,我的错误。数据是item和appDelegate:S,如果您不知道就不好了()非常感谢。让appDelegate:appDelegate=(UIApplication.sharedApplication().delegate为!appDelegate)使其正常工作
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
    }