我有一个NSArray,其对象具有一个名为“dueDate”的属性,每个对象都有一个指定日期的NSString,但是有些对象的dueDate是“ - ”(意味着用户没有添加特定日期) ),我必须重新排序NSArray,因此带有“ - ”dueDate的对象始终位于底部,具有特定日期的对象按升序排列并位于NSArray的顶部。
这里是NSArray和对象数据的一个例子:
答案 0 :(得分:0)
您可以使用sortedArrayUsingComparator:
。你会做这样的事情
NSArray *sortedByDueDate = [toBeSortedByDueAte sortedArrayUsingComparator:^NSComparisonResult(id lhs, id rhs) {
SavedTask *lhs_task = (SavedTask *)lhs;
SavedTask *rhs_task = (SavedTask *)rhs;
NSString *lhs_dueDate = lhs_task.dueDate;
NSString *rhs_dudDate = rhs_task.dueDate;
NSComparisonResult const result = /* Your code for comparing the strings here */
return result
}];
在生产代码中,您应该验证lhs
和rhs
是否属于预期类型。