2011-12-29 63 views
0

我有一個數組,其中包含的對象可能相同,有些則不同。
如何分別取出每個相同的物體和不同的物體?從NSMutableArray中取出對象

下面是陣列

NSMutableArray *items = [[NSMutableArray alloc] 
initWithArray:[NSArray arrayWithObjects:@"rat", @"rat", @"cat",@"Lion", @"cat", @"dog", @"dog", nil]]; 

我想有四個數組這將包含以下項目:

  • 第一陣列有兩個老鼠
  • 第二陣列兩隻貓
  • 3用一隻獅子排列
  • 第四排有兩隻狗

什麼可能是最好的方法把對象?相同的對象應放置在相同的數組中。

回答

6

這裏有一個籠統的回答:

把陣列到NSCountedSet - 將存儲每個對象和它已被添加的次數的計數。

然後 - 對於此計數集中的每個對象,根據每個對象的計數重複創建一個數組。

它會在你的情況下工作,因爲你正在使用靜態字符串,如果它們是相同的字符串,它們將會是相同的。如果您使用自定義對象,這將需要更多的工作。

但是我們要問的真正問題是爲什麼您需要創建這些重複結構。如果我們能夠知道你在做什麼,我們可以給你更好的建議,告訴你如何去做。例如,如果你只需要保持每種類型對象的數量,你就可以直接使用NSCountedSet(它從NSMutableSet中下降,所以它已經是可變的),而不用費心去創建數組。

+0

我有一個包含多行的數據庫。每行包含部分標題列。有些行具有相同的部分標題值,有些具有不同的值。要將這些數據加載到表格視圖中,我需要基於章節的數據。任何好的建議我如何檢索這些數據。我正在使用核心數據。 – ashish 2011-12-29 15:10:08

+1

在這種情況下,您可能最好使用NSFetchedResultsController。 – Abizern 2011-12-29 15:17:14

+0

謝謝Abizem。如果我需要使用NSCountedSet作爲數組中的自定義對象。這個方法會是什麼? – ashish 2011-12-30 11:49:11