2010-05-21 60 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漂亮的印刷,你需要遍历如其他人所说。

相关问题