2016-04-27 95 views
0

你好我正在swift上工作。我需要知道如何找到匹配确切字符串的结果。这里是我的代码NSPredicate与字符串完全匹配

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

我GOOGLE了,但我找到一些答案关闭我的问题,但他们都在客观C.

+0

因为你使用CONTAINS [C ] ..意味着如果有任何字符在该字段中,那么你得到那个 –

+0

是的我应该使用什么呢?@EICaptain – hellosheikh

回答

1

使用谓词MATCHES如下:

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

希望它可以帮助..

+0

“MATCHES”执行*正则表达式匹配。如果搜索字符串包含任何正则表达式特殊字符,这将不起作用。 –

0

若要测试完全平等,只需使用==,而不是CONTAINS

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

这也可以用[c]为不区分大小写的平等合并:

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