2011-11-10 54 views
2

有很多关于相反方式的线程,但我有兴趣从原始C数组转换为NSArray。原因是我想从数组内容创建一个NSString。要创建的NSString我会用:从C数组创建一个NSArray

NSArray *array; 
NSString *stringFromArray = [array componentsJoinedByString:@","]; 

我用逗号加入数组的元素,因为我稍后将被保存字符串为.csv文件。我不认为这很重要,但我正在处理的C数组的类型是double和size 43.

double c_array = new double [43]; 

Thanks!

+0

即使对于原始类型,也不存在自动装箱,更不用说数组了。所以你将无法做到这一点没有循环。但是如果你正在编写一个循环,你不妨在循环中进行字符串连接 - 不需要花费时间和内存来首先构建一个NSArray。 –

+0

'double c_array = new double [43];'不是我听过的任何C数组。 –

回答

4
NSString * stringFromArray = NULL; 
NSMutableArray * array = [[NSMutableArray alloc] initWithCapacity: 43]; 
if(array) 
{ 
    NSInteger count = 0; 

    while(count++ < 43) 
    { 
     [array addObject: [NSString stringWithFormat: @"%f", c_array[count]]]; 
    } 

    stringFromArray = [array componentsJoinedByString:@","]; 
    [array release];  
} 
+0

太棒了!谢谢!我改变的只是使用for循环而不是while循环。第一个计数值是1.我需要0来访问c_array的第一个元素。否则非常有帮助。 –

+0

不客气! –