我正在建設的應用程序有可能「下載」文本文件,並從那裏得到的數字。在模擬器中一切正常,但是當我在設備上測試它時,它剛剛崩潰。過了一段時間,我發現問題出在小數點分隔符上。在該文件中,我使用.
,我的iPhone的本地設置需要,
。該字符串的例子:NSString與NSNumber與一些小數分隔符
Product 1;100.00
Product 2;82.85
Product 3;95.12
//etc...
的前幾個.
變更爲,
後,我能成功運行應用程序,直到它達到第一.
,所以這就是問題所在。
我可以很容易地更換所有.
到,
編程,但我想這個程序,在任何國家的工作與任何數字格式,它不侷限於某些特定市場。
的代碼我用得到這些數字:
NSString *fileContents = [[NSUserDefaults standardUserDefaults]objectForKey:theKey];
NSArray *allLinedStrings = [fileContents componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]];
NSMutableArray *allStringNormalized = [NSMutableArray array];
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
for (int i = 0; i < allLinedStrings.count; i++) {
NSString *bla = [allLinedStrings objectAtIndex:i];
NSArray *bla1 = [bla componentsSeparatedByString:@";"];
[allStringNormalized addObject:[formatter numberFromString:[bla1 objectAtIndex:1]]];
}
self.values = [NSArray arrayWithArray:allStringNormalized];
任何幫助,將不勝感激。
謝謝:)
謝謝,這幾乎是我一直在尋找。雖然我希望找到一種方法來使用不同的分隔符(如果一個字符串使用'.',其他使用',') – Novarg 2012-03-20 08:47:32
您可以在文件上運行自動檢測。如果你知道它將會是。或者,然後看看哪一個存在並使用那個。 – freespace 2012-03-20 09:12:37