2010-05-21 44 views
0

這是正確的做法嗎?如何使用objective-c中的for循環添加數組中的元素?

nsmutablearray *myarray1  //have some data in it 
    for (int i=0;i< [myarray1 count]; i++) 
    { 
      myArray2 = [NSMutableArray array]; 
     [myArray2 addObject:i];  
    } 

我該如何打印myarray2的這個值。

+0

你試圖將一個數組的元素添加到其他數組? – Jim 2010-05-21 11:54:52

+0

你想如何打印?僅用於調試目的嗎? – 2010-05-21 11:54:53

+0

您想將'myArray2 = [NSMutableArray array];'語句移到'for'循環之外。如果你這樣做了,你的代碼將會複製數組,儘管Jim用'arrayWithArray:'解決方案更好。 – 2010-05-21 12:09:02

回答

2

如果你想一個陣列其他數組的元素複製然後使用下面的代碼:如果你要打印的元素值則取決於存儲數組您就可以打印元素數據

NSMutableArray *secondArray = [NSMutableArray arrayWithArray:firstArray]; 

也就是說,如果數組包含字符串對象,那麼你可以打印這樣的:

for(int i=0;i<secondArray.count;i++) 
{ 
    NSLog(@"Element Value : %@",[secondArray objectAtIndex:i]); 
} 

如果數組包含任何用戶定義的對象,那麼你可以打印這樣的:

for(int i=0;i<secondArray.count;i++) 
{ 
    UserDefineObject *obj = [secondArray objectAtIndex:i]; 
    NSLog(@"Element Value with property value: %@",obj.property); 
} 
0

的最簡單的方法來創建包含與舊數組相同元素的新數組是使用NSCopying或NSMutableCopying。

NSArray* myArray2 = [myArray1 copy];    // myArray2 is an immutable array 
NSMutableArray* myArray3 = [myArray1 mutableCopy]; // myArray3 is an mutable array 

如果您想打印一個數組的內容用於調試目的:

NSLog(@"myArray2 = %@", myArray2); 

如果你想爲一個UI漂亮的印刷,你需要遍歷如其他人所說。

相關問題