gpt4 book ai didi

objective-c - 按 NSDate 属性对自定义对象的 NSArray 进行排序

转载 作者:太空狗 更新时间:2023-10-30 03:17:23 25 4
gpt4 key购买 nike

我正在尝试对填充有自定义对象的 NSArray 进行排序。每个对象都有一个 NSDate 类型的属性 startDateTime

以下代码生成一个数组 sortedEventArray,该数组已填充但未排序。我是不是以完全错误的方式解决这个问题,还是只是遗漏了一些小东西?

NSSortDescriptor *dateDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"startDateTime" 
ascending:YES];
NSArray *sortDescriptors = [NSArray arrayWithObject:dateDescriptor];
NSArray *sortedEventArray = [nodeEventArray sortedArrayUsingDescriptors:sortDescriptors];

最佳答案

您确定节点事件的 startDateTime 实例变量不为零吗?

如果您还没有,您可以添加一个(自定义)-description 方法到您的节点事件对象,它会执行如下操作:

- (NSString *)description {
return [NSString stringWithFormat:@"%@ - %@",
[super description], startDateTime]];
}

然后在您的排序代码中记录前后的数组:

NSLog(@"nodeEventArray == %@", nodeEventArray);
NSSortDescriptor *dateDescriptor = [NSSortDescriptor
sortDescriptorWithKey:@"startDateTime"
ascending:YES];
NSArray *sortDescriptors = [NSArray arrayWithObject:dateDescriptor];
NSArray *sortedEventArray = [nodeEventArray
sortedArrayUsingDescriptors:sortDescriptors];
NSLog(@"sortedEventArray == %@", sortedEventArray);

如果 startDateTime 都是 nil,则前后数组的顺序相同(因为排序操作等同于发送所有 >-compare: 消息到 nil,基本上什么都不做)。

关于objective-c - 按 NSDate 属性对自定义对象的 NSArray 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6083408/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com