类型int不支持NSPredicate'运算符'LIKE'

时间:2016-06-09 04:54:28

标签: ios swift nspredicate

我在Swift中遇到NSPredicate格式的问题,我想创建一个比较Int值的谓词,在String值中的作用类似于“contains”或“LIKE”。

示例:

  • 1
  • 12
  • 31
  • 511

如果我输入1,则所有数字都将返回谓词。

这是我的行代码如下:

let searchPredicate = NSPredicate(format: "id LIKE %d OR customerName contains %@", searchText, searchText)

我也尝试过:

let searchPredicate = NSPredicate(format: "id contains %d OR customerName contains %@", searchText, searchText)

但上面两个都给了我错误: '运算符'LIKE'不支持类型int'和'运算符'包含'不支持类型int'

非常感谢任何想法!提前谢谢。

2 个答案:

答案 0 :(得分:0)

对于int值,你可以直接使用“==”运算符而不需要LIKE运算符,你可以使用以下谓词格式,

let searchPredicate = NSPredicate(format: "id == %d OR customerName contains %@", searchText, searchText)

如果您使用NSNumber,那么请确保使用预定义的方法获得实际值,例如intValue,

答案 1 :(得分:-1)

你能试试吗

let searchPredicate = NSPredicate(format: "id LIKE %d OR customerName contains %@", String(format: "%@",searchText), String(format: "%@",searchText))