数据封装类 .h
@interface SectionTypeModel :NSManagedObject
@property (nonatomic,retain) NSString * id_Type;
@property (nonatomic,retain) NSString * name_Type;
@property (nonatomic,retain) NSNumber * hotCount;
@property (nonatomic,retain) NSSet *subSecTypeArray;
@property (nonatomic,retain) NSSet *channelsArray;
@end
数据封装类 .m
@implementation SectionTypeModel
@end
事例代码 1:
NSArray * allArray;// 存放了好多 SectionTypeModel 类型的对象
NSArray * filteredArray1 = [allArrayfilteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"subSecTypeArray.@count > 0"]];
//所有 subSecTypeArray属性 count>0 的 SectionTypeModel
这块代码和 事例 1 的代码 是 等效的 , predicateWithFormat: 不是很好用 ,但是 predicateWithBlock: 确实 万能的 ,因为它直接 可以 得到 对象 ,你return yes 的对象就是筛选过后 满足条件的
NSArray * filteredArray2 = [allArrayfilteredArrayUsingPredicate:[NSPredicatepredicateWithBlock:^BOOL(SectionTypeModel * evaluatedObject,NSDictionary *bindings) {
if (evaluatedObject.subSecTypeArray.count >0) {
returnYES;
}else{
returnNO;
}
}]];
事例2
NSArray * filteredArray2 = [allArrayfilteredArrayUsingPredicate:[NSPredicatepredicateWithBlock:^BOOL(SectionTypeModel * evaluatedObject,NSDictionary *bindings) {
if (evaluatedObject.hotCount.intValue >0) {
returnYES;
}else{
returnNO;
}
}]];
//所有 hotCount > 0的 SectionTypeModel
事例 3
NSArray * filteredArray3 = [allArrayfilteredArrayUsingPredicate:[NSPredicatepredicateWithBlock:^BOOL(SectionTypeModel * evaluatedObject,NSDictionary *bindings) {
if ([evaluatedObject.name_TypeisEqualToString:@"类型名字傻冒"]) {
returnYES;
}else{
returnNO;
}
}]];
//所有 name_Type为 @"类型名字傻冒" 的 SectionTypeModel