這裏是一個很長時間的潛伏者(但仍然是主要吸引程序員)。我環顧四周尋找答案,找不到任何答案。將數組字符串對象轉換爲浮點數
我想從plist中讀取數組,然後將這些對象從字符串轉換爲浮點數。
我正在嘗試的代碼現在聲明NSNumberFormatter
,並嘗試讀入並轉換爲float。它不工作,NSLog
總是顯示爲0這些值。
這裏是我的代碼,我使用(成功)從Plist
讀入陣,和(沒有成功)轉化的字符串彩車:
//Find the Plist and read in the array:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docDirectory = [paths objectAtIndex:0];
NSString *filePath = [docDirectory stringByAppendingPathComponent:kFilename];
//Working up til here, the NSLog correctly shows the values of the array
NSArray *fileArray = [[NSArray alloc] initWithContentsOfFile:filePath];
//Turn object in array from string to float
NSNumberFormatter *format = [[NSNumberFormatter alloc] init];
[format setNumberStyle:NSNumberFormatterDecimalStyle];
NSNumber *readinVol = [format numberFromString: fileArray [0]];
//This line not working, I believe- intended to read-in as an NSNumber,
//and then convert to float below:
CGFloat readVol = [readinVol floatValue] * _volFloat;
所以我的問題是:
如何將存儲在數組中的對象從當前的字符串轉換爲更多可用的浮點數?理想情況下,我喜歡在一個循環中完成所有操作,但也很樂意爲每個循環設置單獨的CGFloats
(如readVol
)。
在此先感謝您的幫助。
可可的格式化器是敏感的混蛋。如果它不喜歡/識別格式字符串的一個字符,它只會保留並在每次調用中返回'nil'(0,0.0,NULL等)。如果你只需要將一個字符串轉換爲一個浮點數,可以考慮使用C stdlib函數'strtod()'。 – 2013-12-15 22:29:41
如果這些值是浮動的,爲什麼他們在plist中串起來?你可以把數字放在plist中。 – rmaddy