Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 按创建日期排序对象(一天)_Objective C - Fatal编程技术网

Objective c 按创建日期排序对象(一天)

Objective c 按创建日期排序对象(一天),objective-c,Objective C,大家好,我们有这样一节课: @interface Foo : NSObject property(nonatomic, strong) NSNumber *dateCreated; @end 我创建了一个Foo类型的对象数组,如下所示: NSMUtableArray *array = [NSMUtableArray array]; Foo *foo1 = [Foo alloc] init]; foo1.dateCreated =[NSNumber numberWithDouble:[NSDat

大家好,我们有这样一节课:

@interface Foo : NSObject
property(nonatomic, strong) NSNumber *dateCreated;
@end
我创建了一个Foo类型的对象数组,如下所示:

NSMUtableArray *array = [NSMUtableArray array];
Foo *foo1 = [Foo alloc] init];
foo1.dateCreated =[NSNumber numberWithDouble:[NSDate timeIntervalSince1970]]; 
[array addObject:foo1];

Foo *foo2 = [Foo alloc] init];
foo1.dateCreated =[NSNumber numberWithDouble:[NSDate timeIntervalSince1970]]; 
[array addObject:foo2];

....
对象foo1、foo2、,。。。不是同时创建的。在不同的日期创建

问题:

我想按天订购我的物品,我的意思是创建所有物品,例如:2009年9月6日,以及2009年9月7日创建的其他列表


感谢您的回答。

查找所有对象的首次创建日期。这是开始迭代的第一天。找到最后一个创建日期,这将告诉您迭代何时完成。这两个日期都需要转换,以便分别位于一天的开始和结束处

迭代,从第一个日期开始,持续到最后一个日期,每次增加一天的秒数

请注意,同样的过程也适用于存储的日期而不是数字,但是您可以使用
NSDateComponents
,这样计算第一个和最后一个日期以及添加一天的时间间隔就更容易了

在循环过程中,您有两个日期:

  • 迭代的开始日期
  • 该迭代的结束日期(比添加到开始日期的一整天少1秒)
  • 有了这些信息,您可以在源对象列表上运行谓词:

    [NSPredicate predicateWithFormat:@"dateCreated >= %@ AND dateCreated <= %@", startDate, endDate]
    

    [NSPredicate predicateWithFormat:@“dateCreated>=%@和dateCreated为什么要存储时间间隔数而不是日期?您是指“顺序”(排序)还是“组”(听起来像是指组)?因为我使用的是coreData;)。是的,我的意思是按天对对象进行分组。核心数据完全能够存储日期。