Objective C - 使用正确的日期格式订购NSArray

时间:2014-08-04 16:43:53

标签: ios objective-c nsarray

我有一个NSArray,其对象具有一个名为“dueDate”的属性,每个对象都有一个指定日期的NSString,但是有些对象的dueDate是“ - ”(意味着用户没有添加特定日期) ),我必须重新排序NSArray,因此带有“ - ”dueDate的对象始终位于底部,具有特定日期的对象按升序排列并位于NSArray的顶部。

这里是NSArray和对象数据的一个例子:

enter image description here

enter image description here

enter image description here

1 个答案:

答案 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
}];

在生产代码中,您应该验证lhsrhs是否属于预期类型。