簡體   English   中英

對Objective-c對象數組進行排序

[英]Sorting an array of Objective-c objects

所以我有一個自定義類Foo ,它有許多成員:

@interface Foo : NSObject {
    NSString *title;
    BOOL     taken;
    NSDate   *dateCreated;
}

在另一個類中,我有一個NSMutableArray其中包含這些對象的列表。 我非常想根據dateCreated屬性對這個數組進行排序; 我知道我可以為此編寫自己的分類器(迭代數組並根據日期重新排列)但我想知道是否有一個正確的Objective-C方法來實現這一目標?

我可以提供成員變量排序的某種排序機制會很棒。

在C ++中我曾經重載<=>運算符,這允許我按對象排序,但我有一種有趣的感覺Objective-C可能提供更好的選擇?

非常感謝

這很簡單。

首先,在您的Foo對象中,創建一個方法

- (NSComparisonResult) compareWithAnotherFoo:(Foo*) anotherFoo;

哪個會回歸

[[self dateCreated] compare:[anotherFoo dateCreated]];

最后,調用數組

[yourArray sortUsingSelector:@selector(compareWithAnotherFoo:)];

希望這有幫助,保羅

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM