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

Joh*_*ler 1 filtering core-data nspredicate swift3

我似乎无法找到任何与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.")
}
Run Code Online (Sandbox Code Playgroud)

基本上,我只是尝试向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.")
}
Run Code Online (Sandbox Code Playgroud)

vad*_*ian 6

您需要附加到请求的谓词:

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