我有以下核心数据实体:
现在我有所有POI实体的NSArray。
我希望使用谓词过滤该数组,以便它搜索每个属性,看它是否包含用户搜索的内容。
例如: 数组对象0: 地址=测试 details = Test1 ..
数组对象1: 地址= Ba 细节= Ba1 ..
并且用户搜索'e',我想得到一个只有对象0的nsarray。
我试过这样:
NSPredicate *resultPredicate = [NSPredicate
predicateWithFormat:@"SELF contains[cd] %@",
searchText];
searchResults = [_dataArray filteredArrayUsingPredicate:resultPredicate];
但这总是没有回报。
有人可以帮我解决这个问题吗?
答案 0 :(得分:3)
请尝试这样做;
[NSPredicate predicateWithFormat:@"SELF.propertyName contains[cd] %@", searchText];
答案 1 :(得分:0)
由于_dataArray
包含POI
个实体并搜索address
属性,因此请将谓词更改为
NSPredicate *resultPredicate = [NSPredicate
predicateWithFormat:@"address contains[cd] %@",
searchText];
searchResults = [_dataArray filteredArrayUsingPredicate:resultPredicate];
答案 2 :(得分:0)
试试这个
NSPredicate *resultPredicate = [NSPredicate
predicateWithFormat:@"SELF contains[cd] \'%@\'",
searchText];
searchResults = [_dataArray filteredArrayUsingPredicate:resultPredicate];