我有一个 int 类型的类成员“total”。我在谓词中使用“总计”作为属性:
[NSPredicate predicateWithFormat: @"total ==%i", [searchText intValue]];
此谓词用于在执行搜索时收集匹配项。谓词将存储在 iVarsearchText
中的 text 类型的用户搜索值与 int 类型的属性“total”进行比较。
我可以像这样轻松地检查是否相等:
NSPredicate *filter = [NSPredicate predicateWithFormat: @"total ==%i", [searchText intValue]];
我现在想让谓词更健壮,像文本搜索一样工作,所以如果用户在搜索框中键入“5”,谓词将返回 5,52,550 等。
换句话说,我想在我的谓词过滤器中将“total”(一个属性)视为一个字符串,这样我就可以使用BEGINSWITH 或 CONTAINS。
我的问题是属性“total”是int类型,而不是字符串,所以我被卡住了。
这是我的意图(伪代码)
NSPredicate *filter = [NSPredicate predicateWithFormat: @"[total stringValue] BEGINSWITH %@", searchText];
或者
NSPredicate *filter = [NSPredicate predicateWithFormat: @"CAST(total, 'NSString' ) BEGINSWITH %@", searchText];
如果不在我的班级中创建字符串类型,我怎么能做到这一点?
谢谢!