2010-10-20 6 views
0

Можно создать дубликат:
removing duplicates in nsarrayNSArray фильтрация

Привет друзья,

Я храню значение в NSArray и я должен удалить дубликаты dates.i означает, точно так же как это (14/12/2010, уплаченный, 15/12/2010, ожидаемый, 15/12/2010, ожидается, 16/12/2010, выплачено) должно быть (14/12/2010, уплачено, 15/12/2010 в ожидании, 16/12/2010, платный). может ли кто-нибудь предложить мне лучший способ удалить дубликаты, в которых есть 2 разных дня.

Заранее спасибо.

С уважением, Sathish

ответ

0

Вы можете использовать NSDictionary, с key = NSDate и value = статус (платный/ожидающий). Когда вы вставляете какую-либо дату в словарь, проверьте словарь objectForKey: NSDate, если он возвращает нуль, тогда вы можете вставить новую дату.

0

Используйте NSSet (наш NSMutableSet).

Объекты в наборе должны отвечать хэш-методам протокола NSObject и isEqual: (дополнительную информацию см. В NSObject). См Collections Programming Topics

Другим решением является петля каждого элемента массива, чтобы добавить элемент в другой массив (изменяемый), если он не дублируется:

NSMutableArray* filteredArray = [[NSMutableArray alloc]init]; 
for (id obj in array) { 
    BOOL duplicated=NO; 
    for (id objTest in filteredArray) { 
    if ((obj.date==objTest.date) && (obj.status==objTest.status)) { 
     duplicated = YES; 
    } 
    } 
    if (duplicated==NO) { 
    [filteredArray addObject:obj]; 
    } 
} 
+0

Можете ли вы объяснить, как это будет работать с только частично разными предметами? – Eiko

+0

Точный, если объект имеет больше полей ... –

+0

hi benoit data is on nsarray. он не имеет пары ключ-значение –

Смежные вопросы