2011-10-15 25 views
0

我有一個大陣列(幾百個對象),我需要把它分成取決於一個整數對象中的多個陣列,但我不知道需要多少個陣列。我認爲使用二維NSMutableArray會工作,但如果我這樣做,如下所示,然後當我清空tempArray,它清空數組fullArray以及。還有另一種使用臨時可重用數組的方法,一旦它被添加到另一個數組中,它就釋放對它的引用。二維可變數組NSMutableArray的,但不知道有多少,我需要

- (void)createArray{ 

fullArray=[[NSMutableArray alloc]init]; 
NSMutableArray *tempArray=[[NSMutableArray alloc] init]; 

for(int j=0; j<numberOfGames; j++){ 

    for(int i=0; i<[appDelegate.hiddenChars count]; i++){ 
     Chars *charObj=[appDelegate.hiddenChars objectAtIndex:i]; 
     if(charObj.gameID==j){ 
      //NSLog(@"Match!"); 
      [tempArray addObject:charObj]; 
     } 
    } 
    [fullArray addObject:tempArray]; 
    [tempArray removeAllObjects]; //this empties it from fullArray too 
} 

} 

我可以得到一個變量有多少行和列,但它們不是靜態的。我已經嘗試過使用C數組,但我無法以這種方式創建全局數組。我試着定義一個全局數組,並在創建數組中使用「new」,但Xcode說「新」是無法識別的。 我試圖

id fullArray;//in global scope 
fullArray=new id fullArray[rows][columns];//new and id throw exceptions, new unrecognized and id expects ";" before it. 

我的另一個想法是創建一個單身,但它似乎是大材小用了這個問題。當然有一種方法可以處理需要未知數量的數組嗎?

我將使用數組來填充多個部分的分組的tableview。也許我會說這全錯了?

感謝您的任何幫助。

+0

的可能重複的[目的-C - 如何增加在2D NSMutableArrays對象(http://stackoverflow.com/questions/2467158/objective-c-how-to-add-objects-in-2d -nsmutablearrays) – ughoavgfhw

回答

1

變化只是2號線,你已經得到了它。

- (void)createArray{ 

    fullArray=[[NSMutableArray alloc]init]; 

    for(int j=0; j<numberOfGames; j++){ 
     // inside loop 
     NSMutableArray *tempArray=[[NSMutableArray alloc] init]; 

     for(int i=0; i<[appDelegate.hiddenChars count]; i++){ 
      Chars *charObj=[appDelegate.hiddenChars objectAtIndex:i]; 
      if(charObj.gameID==j){ 
       //NSLog(@"Match!"); 
       [tempArray addObject:charObj]; 
      } 
     } 
     [fullArray addObject:tempArray]; 
     [tempArray release]; // but fullArray still owns it 
    } 

} 
+0

太棒了!謝謝! – Jesse

相關問題