2014-01-20 41 views
0

我再次遇到初学者问题。我有一个CSV文件看起来是这样的:从csv创建浮动数组Objective C

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中的字符串(或字符)变成浮动。

谢谢,当然,如果我的问题不清楚,请让我知道。

+0

仅供参考,该数组包含'NSString'实例。 – Wain

回答

0

让数组中的元素保留为NSString(这就是他们的样子)的实例。只是当你从数组访问元素使它浮这样的:

float f = [array[index] floatValue]; 

你不能在Objective-C彩车NSArray因为NSArray可能只包含的对象。

+0

好的,谢谢,我会这样做 – uti0mnia

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]; 
} 

注意,创建交流阵列的这种方式将其添加到栈;如果您想将其添加到堆中,则需要使用malloc