2013-01-21 68 views
-4

我有一個NSArray,裏面有一些「城鎮」(從json數據庫中得到這些城鎮),但是有一些城鎮有2或3次數組,我必須刪除這些城鎮。xr重複在arrray

我該如何解決這個問題?用x代碼中的for循環或特殊函數?

請幫忙!

+0

我們怎麼會知道?您沒有向我們顯示任何代碼或告訴我們任何有助於我們評估問題的信息。 – JLRishe

回答

0

one line solution,you need to add autorelease for non-ARC project

NSArray *array = // your array 
NSArray filteredArray = [[[NSOrderedSet alloc] initWithArray:array] array]; 
+0

謝謝!有用! – andrewbrown

0

您可以將您的數組轉換爲只能保存唯一值的NSSet。

NSArray *array = ... // Your array of "towns" 
NSSet *set = [[NSSet alloc] initWithArray:array]; 
NSArray *unique = [set allObjects]; 

如果您正在使用自定義數據類makse一定要實現isEqual:

+0

有錯誤: 不可見@interface for'NSArray'聲明瞭選擇器'allObjects' – andrewbrown

+0

因爲你應該在NSSet對象上調用allObjects!只需複製/粘貼代碼。 –

1

可以遍歷所有的城鎮和只添加到「uniqueItems」如果它不已經是它

內部存在
//Towns is an array of strings in this case 

NSMutableArray *uniqueItems = [NSMutableArray array]; 
for (NSString *town in towns) 
    if (![uniqueItems containsObject:town]) 
     [uniqueItems addObject:town]; 
0

這是做的過程中,

NSArray *to = // your towns; 
NSSet *set = [[NSSet alloc]initWithArray:towns]; 
arryl = [set allObjects]; 
0

你可以使用valueForKey這個方法。 這意味着你可以創建一個NSSet中的陣列&的,然後按鍵即可獲得價值

NSSet *uniqueStates = [NSSet setWithArray:[myArrayOfCustomObjects valueForKey:@"state"]];