NSPredicate与String完全匹配

时间:2016-04-27 07:38:15

标签: ios swift nspredicate

你好我正在研究swift。我需要知道如何找到与确切字符串匹配的结果。这是我的代码

let userID: String = String(sender.tag)
        // Create a Predicate with mapping to trip_id
        let filterByRequest: NSPredicate = NSPredicate(format: "%K.%K CONTAINS[c] %@", "ProductRequest", "user_id", userID)
        // Filter your main array with predicate, resulting array will have filtered objects
        let filteredArray: [AnyObject] = self.array.filteredArrayUsingPredicate(filterByRequest)

问题是如果用户ID为69,则显示id为69,6和9的用户的结果。

我用谷歌搜索,但我发现一些答案接近我的问题,但它们都是客观的C。

2 个答案:

答案 0 :(得分:2)

在谓词中使用 MATCHES ,如下所示:

let filterByRequest: NSPredicate = NSPredicate(format: "%K.%K MATCHES %@", "ProductRequest", "user_id", userID)

希望有所帮助......

答案 1 :(得分:0)

要测试完全相同,只需使用==代替CONTAINS

NSPredicate(format: "%K.%K == %@", ...)

对于不区分大小写的相等,这也可以与[c]结合使用:

NSPredicate(format: "%K.%K ==[c] %@", ...)