2013-07-18 40 views
0

這裏是我的代碼:NSSortDescriptor可以使用DateTime類型對數組進行排序嗎?

NSSortDescriptor *sortDescriptor; 
sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"inspectionDateTime" 
               ascending:YES]; 


NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor]; 
sortedArray = [listAllProject sortedArrayUsingDescriptors:sortDescriptors]; 

[sortedArray sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) 
{ 
    UDS_ProjectField *projectField1 = obj1; 
    UDS_ProjectField *projectField2 = obj2; 


    return [projectField1.inspectionDateTime compare:projectField2.inspectionDateTime]; 
    return YES; 
}]; 

我用這個排序表,其中有字段名「inspectionDateTime」 類型DATETIME數據庫的數組,但結果是不正確的。

這是結果

15/2/12 15/1/12 12年12月3日

但希望結果是 12年12月3日 15/2/12 15/1/12

所以現在的問題是NSSortDescriptor可以排序DateTime類型,如果沒有請告訴我另一種方式

+0

但我得到錯誤的結果 – user2434837

回答

0

NSSortDescriptor可以用來日期排列,我用下面的代碼,它是爲我工作:

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey::@"inspectionDateTime" 
ascending:YES selector:@selector(compare:)]; 
[listAllProject sortUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]]; 
+0

我認爲這是關於日期時間格式在Mac中 – user2434837

0

試試這個

NSArray *sortedArray = [listAllProject sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) 
{ 
    UDS_ProjectField *projectField1 = obj1; 
    UDS_ProjectField *projectField2 = obj2; 


    return [projectField1.inspectionDateTime compare:projectField2.inspectionDateTime]; 
    return YES; 
}]; 

欲瞭解更多您可以閱讀docs here

相關問題