我有一个叫做“SMessage”的类;
@interface SMessage:NSObject
@property(nonatomic)int messageId;
@end我还可以创建一个名为SDay的类;SDay可以有很多消息(SMessage);
@interface SDay:NSObject
@property(nonatomic, strong)NSMutableArray *messages;
@end在期末考试中,我有一个普通的类,其中我有几天数组;
@interface SCommonClass:NSObject
@property(nonatomic, strong)NSMutableArray *days;
@end我尝试过滤天数组,并找到messageId =100的邮件(例如);
我不知道如何使用NSPredicate来做到这一点;谢谢你的回答;
发布于 2014-06-06 02:24:06
NSPredicate *p = [NSPredicate predicateWithBlock:^BOOL(id object, NSDictionary *bindings) {
SDay* day = (SDay*)object;
NSMutableArray* messages = day.messages;
NSPredicate* predicate = [NSPredicate predicateWithFormat:@"messageId == 100"];
if ([messages filteredArrayUsingPredicate:predicate].count == 0) {
return NO;
}
else{
return YES;
}
}];
NSArray* result = [common.days filteredArrayUsingPredicate:p];============update===============
NSPredicate *p = [NSPredicate predicateWithBlock:^BOOL(id object, NSDictionary *bindings) {
SDay* day = (SDay*)object;
NSMutableArray* messages = day.messages;
NSPredicate* predicate = [NSPredicate predicateWithFormat:@"messageID == 100"];
NSArray *filteredMessages = [messages filteredArrayUsingPredicate:predicate];
if (filteredMessages.count == 0) {
return NO;
}
else{
day.messages = [NSMutableArray arrayWithArray:filteredMessages];
return YES;
}
}];https://stackoverflow.com/questions/24065897
复制相似问题