【问题标题】:Creating a NSArray from a C Array从 C 数组创建 NDArray
【发布时间】:2011-12-26 13:30:41
【问题描述】:

有很多关于走相反方向的线程,但我对从原始 C 数组转换为 NSArray 感兴趣。这样做的原因是我想从数组内容创建一个 NSString 。要创建我将使用的 NSString:

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

我用逗号连接数组的元素,因为我稍后会将字符串保存为 .csv 文件。我认为这并不重要,但我正在处理的 C 数组是 double 类型,大小为 43。

double c_array = new double [43];

谢谢!

【问题讨论】:

  • 即使对于原始类型,ObjC 中也没有自动装箱,更不用说数组了。因此,如果没有循环,您将无法做到这一点。但是,如果您正在编写一个循环,您最好在该循环中进行字符串连接 - 无需先花费时间和内存来构建 NSArray。
  • double c_array = new double[43]; 不是我听说过的任何 C 数组。

标签: objective-c c nsstring nsarray


【解决方案1】:
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];     
}

【讨论】:

  • 太棒了!谢谢!我所做的唯一更改是使用 for 循环而不是您的 while 循环。第一个计数值为 1。我需要 0 来访问 c_array 的第一个元素。否则非常有帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-14
  • 1970-01-01
  • 1970-01-01
  • 2016-02-10
  • 2012-09-22
相关资源
最近更新 更多