2010-10-20 89 views
0

可能重複:
removing duplicates in nsarrayNSArray的過濾

喜的朋友,

我存儲的NSArray的價值,我必須刪除重複dates.i意味着酷似本次(2010年14月12日,已付,2010年15月12日,待定,2010年15月12日,待定,2010年16月12日)應爲(2010年14月12日,已付,2010年12月15日,待16/12/2010年,支付)。任何人都可以告訴我去除有兩天不同日期的重複的最佳方法。

在此先感謝。

問候, Sathish所在

回答

0

可以使用的NSDictionary,與鍵= NSDate和值=狀態(付費/待定)。當你在字典中插入任何日期時,檢查字典的objectForKey:NSDate,如果它返回nil,那麼你可以插入新的日期。

0

使用NSSet(我們的NSMutableSet)。

集合中的對象必須響應NSObject協議方法hash和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 2010-10-20 08:00:39

+0

確切的,如果對象有更多的字段... – 2010-10-20 08:02:06

+0

嗨benoit數據是在nsarray。它沒有鍵值對 – 2010-10-20 08:23:07