У меня есть NSMutableArray
пользовательских объектов. Каждый содержит уникальную строку идентификатора, и каждый содержит свойство downloadedDate
.
Объекты могут быть добавлены дважды, поэтому мне нужно проверить идентификатор на наличие дубликатов, и если я найду дубликат, мне нужно сохранить тот, у которого самая новая дата.
В настоящее время я делаю следующее, чтобы удалить дубликаты, но при этом не учитывается сохранение объекта с самой новой датой.
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];
Есть ли более простой способ сделать то, что я хочу, чем иметь кучу копий моего массива и вложенных циклов?