我在Swift中遇到NSPredicate格式的问题,我想创建一个比较Int值的谓词,在String值中的作用类似于“contains”或“LIKE”。
示例:
如果我输入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'
非常感谢任何想法!提前谢谢。
答案 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))