2014-01-20 53 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