从csv Objective C创建浮点数组

时间:2014-01-20 13:54:30

标签: objective-c arrays csv

我再次遇到初学者问题。我有一个看起来像这样的CSV文件:

3.4,2.4,6.30,2.2,53.42,54,1,5

现在,我有一个可以将其解析为数组的代码

NSError *error;
NSString *filepath = [[NSBundle mainBundle] pathForResource:@"csv_file" ofType:@"csv" inDirectory:nil];
NSString *string = [NSString stringWithContentsOfFile:filepath encoding:NSUTF8StringEncoding error:&error];
NSArray *array = [array componentsSeparatedByString:@","];

我遇到的问题是我不能用这些数字做数学(因为它们是字符 - 或者字符串,不确定 - )。

我的问题是,有没有像我一样的方法,但是用浮点数创建数组,或者是否有办法将array中的字符串(或字符)放入浮点数。

谢谢,当然如果我的问题不明确,请告诉我。

2 个答案:

答案 0 :(得分:0)

让数组中的元素保持NSString的实例(这就是它们)。就在你从数组中访问一个元素时,让它像这样浮动:

float f = [array[index] floatValue];

Objective-C中不能有NSArray个浮点数,因为NSArray可能只包含对象。

答案 1 :(得分:0)

您可能正在寻找floatValue属性

float sum = 0;
for (NSString *numberString in array) {
    sum += [numberString floatValue];
}

如果你想把它们放在一个C数组中:

float floatArray[array.count];
for(i = 0; i < sizeof(floatArray); i++)  { 
    NSString *numberString = array[i];
    floatArray[i] = [numberString floatValue];
} 

请注意,这种创建c数组的方法会将其添加到堆栈中;如果要将其添加到堆中,则需要使用malloc

相关问题