私はNSMutableArray
のカスタムオブジェクトを持っています。それぞれに固有のID文字列が含まれ、それぞれにdownloadedDate
プロパティが含まれています。NSMutable Arrayから重複したカスタムオブジェクトを削除して、最新の複製オブジェクトを保持します。
オブジェクトが2回追加される可能性があります。重複のIDを確認する必要があります。重複が見つかった場合は、最新の日付を保持する必要があります。
現在、私は重複を削除するために以下の作業を行っていますが、オブジェクトを最新の日付に保つことは考慮していません。
NSArray *originalArray = [NSArray arrayWithArray:mutableItems];
NSMutableArray *uniqueArray = [NSMutableArray array];
NSMutableSet *names = [NSMutableSet set];
for (ZSSObject *g in originalArray) {
NSString *destinationName = g.code;
if (![names containsObject:destinationName]) {
[uniqueArray addObject:g];
[names addObject:destinationName];
}
}
NSArray *uniqueObjects = uniqueArray;
オブジェクトは、次のように作成されます:
ZSSObject *obj = [ZSSObject alloc] init];
obj.code = @"12345";
obj.downloadedDate = [NSDate date];
は私のアレイとネストされたループのコピーの束を持つよりも、私がしたいことをやるための簡単な方法はありますか?代わりにNSDictionary
を使用するように提案を使用し
あなたは辞書ではなく、配列を使用する必要があるようですね。その後、新しいオブジェクトを辞書に追加する前に、日付をチェックすることができます。 – Paulw11
ループの前にoriginalArrayを降順でソートすると、あなたの問題が解決します。 – meth
@ Paulw11 - 私はちょうど答えを掲示しました、これがあなたが考えていたものかどうか私に知らせてください。 –