2009-01-06 43 views
11

看起來好像NSNumberFormatter's設置自定義formatters的方法。 setFormat:不可用在iPhone上...iPhone NSNumberFormatter setFormat:

所以這...崩潰我的應用程序:

NSNumberFormatter *lengthFormatter = [[NSNumberFormatter alloc] init]; 
[lengthFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4]; 
[lengthFormatter setNumberStyle:NSNumberFormatterDecimalStyle]; 
[lengthFormatter setFormat:@"#,##0.0M"]; 

已經出現這種情況給其他人?

感謝,

丹 ** BELOW解答。 NSNumberFormatter也有稱爲setPositiveFormat: setNegativeFormat:方法,其更換貶值setFormat: **

回答

9

是的,它的記錄作爲NSNumberFormatter Class Reference的說明(需要登錄)。該筆記說:

iPhone OS注:iPhone OS支持 只有現代10.4+的行爲。 10.0版風格的方法和格式字符串在iPhone OS上不可用。

編輯:增加了更多的文本來支持後續問題。

你可以你重新寫類似的東西:

NSNumberFormatter *lengthFormatter = [[NSNumberFormatter alloc] init]; 
[lengthFormatter setNumberStyle:NSNumberFormatterDecimalStyle]; 
[lengthFormatter setPositiveSuffix:@"M"]; 
[lengthFormatter setNegativeSuffix:@"M"]; // assuming it can go negative 

我建議採取一看我上面鏈接的文檔。它專門用於iPhone版的NSNumberFormatter,所以沒有任何會導致應用程序崩潰的方法。它也被設計爲比原始的NSNumberFormatter所做的更多地利用用戶的本地化設置。有許多方法可以限制出現的內容,同時仍然利用用戶的偏好。不幸的是,不再有setFormat:方法。