Как преобразовать NSInteger в тип данных NSString?
Я пробовал следующее, где месяц - NSInteger:
NSString *inStr = [NSString stringWithFormat:@"%d", [month intValue]];
Как преобразовать NSInteger в тип данных NSString?
Я пробовал следующее, где месяц - NSInteger:
NSString *inStr = [NSString stringWithFormat:@"%d", [month intValue]];
NSIntegers не являются объектами, вы передаете их в long, чтобы соответствовать определению текущей 64-разрядной архитектуры:
NSString *inStr = [NSString stringWithFormat: @"%ld", (long)month];
Obj-C way =):
NSString *inStr = [@(month) stringValue];
NSInteger имеет метод stringValue который можно использовать даже с литералом
NSString *integerAsString1 = [@12 stringValue];
NSInteger number = 13;
NSString *integerAsString2 = [@(number) stringValue];
Очень просто. Не так ли?
var integerAsString = String(integer)
%zd работает для NSIntegers (%tu для NSUInteger) без заливок и никаких предупреждений на 32-битной и 64-разрядной архитектурах. Я понятия не имею, почему это не " рекомендуемый путь".
NSString *string = [NSString stringWithFormat:@"%zd", month];
Если вас интересует, почему это работает, см. этот вопрос.
Простой способ сделать:
NSInteger value = x;
NSString *string = [@(value) stringValue];
Здесь @(value) преобразует данный NSInteger в объект NSNumber, для которого вы можете вызвать нужную функцию, stringValue.
При компиляции с поддержкой arm64 это не приведет к возникновению предупреждения:
[NSString stringWithFormat:@"%lu", (unsigned long)myNSUInteger];
Вы также можете попробовать:
NSInteger month = 1;
NSString *inStr = [NSString stringWithFormat: @"%ld", month];
Ответ дан, но думаю, что для некоторой ситуации это также будет интересным способом получить строку из NSInteger
NSInteger value = 12;
NSString * string = [NSString stringWithFormat:@"%0.0f", (float)value];
NSNumber может быть полезен для вас в этом случае.
NSString *inStr = [NSString stringWithFormat:@"%d",
[NSNumber numberWithInteger:[month intValue]]];