したがって、これはカスタムオブジェクトのNSMutableArray
をソートする最良の方法に関するかなり基本的な質問です。
カスタムオブジェクトのNSMutableArray
があり、各オブジェクトにはNSString
とNSDate
が一緒になっています。私は配列を最新のオブジェクト(したがって最新のNSDate
)でソートする必要があります。これがNSDate
の配列である場合は、単にNSDate compare: NSDate
を使用できると確信しています。しかし、日付だけでなくすべてのオブジェクトを並べ替える必要があるため、そのメソッドを使用できるかどうかはわかりません。
疑似コードの観点から、私は次のことを行う必要があります。個々のオブジェクトを見て、現在のオブジェクトのNSDate
が配列で2番目に大きいかどうかを判別し、そうである場合は、日付だけでなくオブジェクトを移動します。
繰り返しますが、これは非常に基本的であるため、尋ねるのをためらっていましたが、オブジェクトの配列を検索して、基本的に必要なことを実行する既存のクラスメソッドがある場合は、かなり非効率的なメソッドを書きたくありませんサブプロパティを作成し、サブプロパティに従ってオブジェクトを並べ替えます。
助けてくれてありがとう。
NSSortDescriptors
sを使用すると、これが非常に簡単になります。 NSMutableArray
では、sortUsingDescriptors:
を使用して既存の配列を並べ替えることができ、不変の配列では、sortedArrayUsingDescriptors:
を使用して新しい配列を作成できます
//This will sort by stringProperty ascending, then dateProperty ascending
[mutable_array sortUsingDescriptors:
@[
[NSSortDescriptor sortDescriptorWithKey:@"stringProperty" ascending:YES],
[NSSortDescriptor sortDescriptorWithKey:@"dateProperty" ascending:YES]
]];
この小さなスニペットは私にとってはうまくいきました:
[students sortUsingDescriptors:@[[NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES]]];