Как преобразовать NSInteger
в NSString
тип данных?
Я попробовал следующее, где месяц NSInteger
:
NSString *inStr = [NSString stringWithFormat:@"%d", [month intValue]];
NSIntegers не являются объектами, к которым вы приводите их long
, чтобы соответствовать определению текущей 64-битной архитектуры:
NSString *inStr = [NSString stringWithFormat: @"%ld", (long)month];
Format specifies type 'int' but the argument has type 'NSInteger *'(aka 'int *')
. Вместо этого, согласно Apple Docs , я пошел сNSString *inStr = [NSString stringWithFormat:@"%d", (int)month];
[@(integerValue) stringValue]
это более чистый подход.Obj-C way =):
источник
Современная Objective-C
An
NSInteger
имеет метод,stringValue
который можно использовать даже с литераломОчень просто. Не так ли?
стриж
источник
%zd
работает для NSIntegers (%tu
для NSUInteger) без приведений и предупреждений как для 32-разрядных, так и для 64-разрядных архитектур. Я понятия не имею, почему это не « рекомендуемый путь ».Если вам интересно, почему это работает, посмотрите этот вопрос .
источник
Простой способ сделать:
Здесь
@(value)
новообращенные данноеNSInteger
наNSNumber
объект , для которого вы можете вызвать необходимую функцию,stringValue
.источник
При компиляции с поддержкой
arm64
, это не сгенерирует предупреждение:источник
Вы также можете попробовать:
источник
Ответ дан, но думаю, что для некоторых ситуаций это будет также интересный способ получить строку из NSInteger.
источник
NSNumber может быть полезен для вас в этом случае.
источник