[英]What is __AVAILABILITY_INTERNAL__IPHONE_2, NS_AVAILABLE ? Trying to use NSNumberFormatter, returns (null)
我在讓NSNumberFormatter正常工作時遇到了一些麻煩。
我正在使用Three20框架在iOS4中進行編譯。
所有NSNumberFormatter選擇器都需要一個稱為NS_AVAILABLE的東西作為選擇器上的第二個參數:
[numberFormatter setCurrencyGroupingSeparator:(NSString *)string __AVAILABILITY_INTERNAL__IPHONE_2:(int)_0];
我不確定第二個參數應該做什么。 我試過了:
[numberFormatter setCurrencyGroupingSeparator:@"," __AVAILABILITY_INTERNAL__IPHONE_2:2]; // Warning: NSNumberFormatter' may not respond to '-setCurrencyGroupingSeparator:__AVAILABILITY_INTERNAL__IPHONE_2:
[numberFormatter setCurrencyGroupingSeparator:@"," __AVAILABILITY_INTERNAL__IPHONE_2:2_0]; //Error: invalid suffix "_0" on integer constant
以及更多的迭代。
如果我未指定__AVAILABLE_INTERNAL__IPHONE_2,則不會發出警告並且可以正常編譯,但是選擇器文本為黑色,在Xcode中不是深紫色,好像無法識別一樣。
這是完整的代碼片段:
NSNumberFormatter *numberFormatter = [[[NSNumberFormatter alloc] init] autorelease];
[numberFormatter setCurrencyGroupingSeparator:@","];
[numberFormatter setUsesGroupingSeparator:YES];
[numberFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
numberString = [NSString stringWithFormat: @"$%@",[numberFormatter stringFromNumber:myNsNumber]]; // myNsNumber is an NSNumber with a value of 10000000
NSLog(@"numberString: %@",numberString); // numberString: (null) | instead of numberString: $10,000,000
我已經用_AVAILABILITY_INTERNAL__IPHONE_2和NS_AVAILABLE進行了Google 搜索 , 但沒有運氣。
搜索developer.apple.com只會給我iOS 4.0 API差異。
這是Three20的問題嗎? 有人知道這是怎么回事或NS_AVAILABLE是什么嗎?
到目前為止,您幾乎忘掉了本文中的所有內容。 可用性方面的內容可讓您知道這些方法所包含的SDK。
這是正常工作的NSNumberFormatter
代碼。
NSNumber *number = [UINumber numberWithInt:42];
NSNumberFormatter *nf = [[NSNumberFormatter alloc] init];
[nf setFormatterBehavior:NSNumberFormatterBehavior10_4];
[nf setNumberStyle:NSNumberFormatterDecimalStyle];
NSString *string = [nf stringFromNumber:number];
[nf release];
如果您有一個空字符串,則可能是因為您的NSNumber為null或NaN,或者是您的格式搞砸了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.