NSPredicate过滤数组的一部分

时间:2015-06-10 05:34:43

标签: ios swift core-data nspredicate

我刚刚开始编码,我选择了迅捷。我有一个CoreData数据库,我使用谓词来显示它的一部分。它可以很好地找到一个完整的表达式。 我可以做什么来搜索数据字段Strasse.name只是像“* way”这样的字符串的一部分。这是我的代码:

   let myFetschRequest = NSFetchRequest(entityName: "Strasse")
    var filter1 = "searchword"
    var filter2 = "searchword"
    let predicate1 = NSPredicate(format: "name = %@", filter1)
    let predicate2 = NSPredicate(format: "art = %@", filter2)
    var compound = NSCompoundPredicate.andPredicateWithSubpredicates([predicate1,predicate2])
    myFetschRequest.predicate = compound
    let sortDescriptor1 = NSSortDescriptor(key: "name", ascending: true)
    let sortDescriptor2 = NSSortDescriptor(key: "bereich", ascending: true)
    myFetschRequest.sortDescriptors = [sortDescriptor1,sortDescriptor2]
    daten = context!.executeFetchRequest(myFetschRequest, error: nil) as! [Strasse]
    tableView.reloadData()

2 个答案:

答案 0 :(得分:0)

可能类似于:

let filter = "way"
let condition = [NSPredicate(format: "Strasse.name contains[cd] %@", filter]

直接用Google搜索它。如果有效,将在以后测试。

经过测试和工作。

答案 1 :(得分:0)

试试吧。

var name = "way" let resultPredicate2 = NSPredicate(format: "Strasse.name BEGINSWITH[cs] %@",name)

这个谓词是过滤所有数据,这是“方式”的开始。如果您只想要一个特定的字符串。然后使用下面给出的。

let resultPredicate2 = NSPredicate(format: "Strasse.name LIKE[cs] %@",name)