以下代码导致数组,sortedEventArray,填充但未排序.我这样做是完全错误的,还是我只是想念一些小事?
NSSortDescriptor *dateDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"startDateTime" ascending:YES];NSArray *sortDescriptors = [NSArray arrayWithObject:dateDescriptor];NSArray *sortedEventArray = [nodeEventArray sortedArrayUsingDescriptors:sortDescriptors];解决方法 确定节点事件的startDateTime实例变量是否为非零?
如果您还没有,您可以添加一个(自定义)描述方法到您的节点事件对象,执行如下 *** 作:
- (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的全部为零,那么前后数组将有相同的顺序(因为排序 *** 作将等同于将所有的-compare:消息发送到nil,基本上什么都不做).
总结以上是内存溢出为你收集整理的objective-c – 通过NSDate属性对自定义对象的NSArray进行排序全部内容,希望文章能够帮你解决objective-c – 通过NSDate属性对自定义对象的NSArray进行排序所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)