我需要通过属性从另一个数组内的对象中过滤数组。 让我们说我有两个类,如:
StoreList.h
@interface StoreList : NSObject {
NSMutableArray *storesArray; //Array containing Store objects
}
Store.h
@interface Store : NSObject {
NSString *name;
}
所以,我有一个NSArray(storeListArray),里面有一些StoreList对象。然后,我的数组是这样的:
storeListArray = [
StoreList:{
storesArray: {
stores[{
store: {
name: "Store1"
},
store: {
name: "Store2"
}
}]
},
storesArray: {
stores[{
store: {
name: "Store1"
},
store: {
name: "Store2"
}
}]
}
}
];
好吧,我的问题是:如何通过" name"过滤storeListArray?商店对象的属性,使用NSPredicate?
我试图做这样的事情,但这不起作用:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY storeList CONTAINS[cd] %@", filterString];
self.filteredStores = [storeListArray filteredArrayUsingPredicate:predicate];
return self.filteredStores;
感谢您的帮助!
答案 0 :(得分:2)
试试这个,
NSPredicate * predicate = [NSPredicate predicateWithFormat:@"ANY SELF.storesArray.name == %@", filterString];
NSArray * videoArray = [storeListArray filteredArrayUsingPredicate:predicate];
答案 1 :(得分:0)
你试过如下,
NSPredicate * predicate = [NSPredicate predicateWithFormat:@"name == %@", filterString];
NSArray * videoArray = [storeListArray filteredArrayUsingPredicate:predicate];
谢谢!