У меня возникли некоторые проблемы с правильной работой NSNumberFormatter.
Я компилирую в iOS4 с Three20 Framework.
Все селекторы 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 без удачи.
Поиск на сайте developer.apple.com дает мне только отличия API iOS 4.0.
Это проблема с Three20? Кто-нибудь знает, что здесь происходит или что такое NS_AVAILABLE?