Я пытаюсь отформатировать валюту США в размере 123 123 долларов США в приложении, отображающем свойства на карте. Число show $(null) должно показывать #
Incompatible integer to pointer conversion initializing 'NSInteger *' (aka 'long *') with an expression of type 'NSInteger' (aka 'long')
Implicit conversion from enumeration type 'enum CFNumberFormatterStyle' to different enumeration type 'NSNumberFormatterStyle' (aka 'enum NSNumberFormatterStyle')
cell.imgViewPropertyType.image = [UIImage imageNamed:@"for_sale"];
NSInteger *intPrice = [theProperty.priceSale integerValue];
NSNumber *tempPrice = [NSNumber numberWithInteger:intPrice];
NSString *price = [NSNumberFormatter localizedStringFromNumber:tempPrice numberStyle:kCFNumberFormatterCurrencyStyle];
Попробуйте с этим. Обратите внимание, что intPrice
не является указателем, поэтому вам нужно объявить его как NSInteger intPrice
вместо NSInteger *intPrice
. Это причина ошибки, которую вы получаете.
cell.imgViewPropertyType.image = [UIImage imageNamed:@"for_sale"];
NSInteger intPrice = [theProperty.priceSale integerValue];
NSNumber *tempPrice = [NSNumber numberWithInteger:intPrice];
Как указано ниже, вы также можете использовать строку ниже.
NSNumber *tempPrice = @(intPrice);
Что касается второй ошибки о CFNumberFormatterStyle
, localizedStringFromNumber
принимает NSNumberFormatterStyle
и не печатает CFNumberFormatterStyle
. Вы пытаетесь передать неправильный тип стиля. Попробуйте с NSNumberFormatterCurrencyStyle
.
NSString *price = [NSNumberFormatter localizedStringFromNumber:tempPrice numberStyle:NSNumberFormatterCurrencyStyle];
@rmaddy, правда. Я бы обычно использовал это. Но хотел показать точную проблему, которая у него была, не сбивая его с толку. Так что оставил эту часть как есть.
спасибо - все заработало, но с другим вопросом, что такое "hasPrefix:@"CUP"? когда я удаляю это, цена показывает, иначе нет? if ([price hasPrefix:@"CUP"] && [price hasSuffix:@" .00"]) { newString = [цена substringFromIndex:1]; newString = [newString substringToIndex:[новая длина строки]-3]; } cell.lblPrice.text = [NSString stringWithFormat:@"$%@",newString]; }
@bjornhustrulid, не могли бы вы создать новый вопрос? Трудно понять код из вашего комментария. Также, если этот ответ помог, не могли бы вы принять его, нажав «галочку» рядом с ответом.
Используйте современный синтаксис:
NSNumber *tempPrice = @(intPrice);