需要帮助在 Swift 3 中过滤核心数据

Posted

技术标签:

【中文标题】需要帮助在 Swift 3 中过滤核心数据【英文标题】:Need help filtering core data in Swift 3 【发布时间】:2016-10-06 01:29:39 【问题描述】:

我似乎找不到任何与在 Swift 3 中过滤核心数据有关的好的文档或教程。

我有以下代码:

let tempVar: String = "abcdef"

let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext

do 

    /* Need code to modify the fetchRequest, so that it only pulls results where the "projectID" field is equal to whatever is stored in the tempVar variable. */

    cstProjectDetails = try context.fetch(CSTProjectDetails.fetchRequest())
 catch 
    print("There was an error fetching CST Project Details.")

基本上,我只是想在 fetchRequest 中添加一个简单的过滤器,以便它只从“cstProjectDetails”中提取结果,其中“projectID”字段等于先前设置的变量的内容(在这种情况下, "tempVar")。

有什么想法吗?

编辑:选中的答案对我有用,但我必须快速调整请求初始化程序的代码。这是我最终得到的代码:

do 
    let request: NSFetchRequest<CSTProjectDetails> = CSTProjectDetails.fetchRequest()
    request.predicate = NSPredicate(format: "projectID == %@", cstProjectID)
    cstProjectDetails = try context.fetch(request)
    print(cstProjectDetails)
 catch 
    print("There was an error fetching CST Project Details.")

【问题讨论】:

"Core Data Programming Guide" -> “获取对象” -> “过滤结果”。 【参考方案1】:

您需要在请求中附加一个谓词:

let request = CSTProjectDetails.fetchRequest()
request.predicate = NSPredicate(format: "projectID == %@", tempVar)
cstProjectDetails = try context.fetch(request)

【讨论】:

以上是关于需要帮助在 Swift 3 中过滤核心数据的主要内容,如果未能解决你的问题,请参考以下文章

需要帮助在 Swift 的 UITableView 中显示核心数据

使用 NSPredicate 对表视图中的核心数据进行排序 (Swift)

当用户使用 swift 的核心数据点击索引 0 到 1 时,如何显示不同的照片过滤器选项?

使用 Swift 3 显示来自核心数据的随机数据

iOS Swift 3核心数据-尝试递归调用-save的致命错误:上下文中止

使用 Swift 过滤 UISearchBar 的核心数据