通过NSDate过滤对象数组

时间:2020-07-13 01:33:37

标签: ios objective-c nspredicate

我有一个对象数组,我需要按日期(它是我对象的属性的日期)按NSPredicate排序

这是我的对象

@interface Object:NSObject

@property (nonatomic, strong) NSDate *date;
@property (nonatomic, strong) NSString *open;

@end

@implementation Object
- (instancetype)initWithDictionary:(NSDictionary *)dictionary {
     self = [super init];
    if (self) {
        NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
        [dateFormatter setDateFormat:@"dd-mm-yyyy"];
        self.date = [dateFormatter dateFromString:[dictionary objectForKey:@"date"]];
        self.open = [dictionary objectForKey:@"open"];
    }
return self;
}
@end

我有一个Array ob对象,例如

NSArray <Object *> *allData 

我需要按日期将数据过滤到allData中。但是当我尝试创建NSPredicate时

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(date >= %@) AND (date <= %@)", firstDate, lastDate];
NSArray <Stock *> *result = [self.allData filteredArrayUsingPredicate:predicate];

我得到一个错误。 我不确定是否可以按日期创建谓词。

这是将数据保存到对象的示例。

[
{
    "date": "5-Februrary-2020",
    "open": 52.09
},
{
    "date": "6-January-2020",
    "open": 5424
},
...

]

我转换为NSdate的日期。

我希望开始日期和结束日期之间有一个子范围。

0 个答案:

没有答案