Come si converte NSInteger
inNSString
tipo di dati?
Ho provato quanto segue, dove mese è un NSInteger
:
NSString *inStr = [NSString stringWithFormat:@"%d", [month intValue]];
Come si converte NSInteger
inNSString
tipo di dati?
Ho provato quanto segue, dove mese è un NSInteger
:
NSString *inStr = [NSString stringWithFormat:@"%d", [month intValue]];
Risposte:
NSIntegers non sono oggetti, li casti long
, al fine di abbinare la definizione delle architetture a 64 bit corrente:
NSString *inStr = [NSString stringWithFormat: @"%ld", (long)month];
[@(integerValue) stringValue]
è un approccio più pulito.
Obj-C way =):
NSString *inStr = [@(month) stringValue];
An NSInteger
ha il metodo stringValue
che può essere utilizzato anche con un valore letterale
NSString *integerAsString1 = [@12 stringValue];
NSInteger number = 13;
NSString *integerAsString2 = [@(number) stringValue];
Molto semplice. No?
var integerAsString = String(integer)
%zd
funziona per NSIntegers ( %tu
per NSUInteger) senza cast e senza avvisi su architetture a 32 e 64 bit. Non ho idea del perché questo non sia il " modo raccomandato ".
NSString *string = [NSString stringWithFormat:@"%zd", month];
Se sei interessato al motivo per cui funziona, vedi questa domanda .
Modo semplice per fare:
NSInteger value = x;
NSString *string = [@(value) stringValue];
Qui il @(value)
convertiti la data NSInteger
a un NSNumber
oggetto per il quale è possibile chiamare la funzione desiderata, stringValue
.
Durante la compilazione con supporto per arm64
, questo non genererà un avviso:
[NSString stringWithFormat:@"%lu", (unsigned long)myNSUInteger];
Puoi anche provare:
NSInteger month = 1;
NSString *inStr = [NSString stringWithFormat: @"%ld", month];
NSNumber potrebbe essere utile per te in questo caso.
NSString *inStr = [NSString stringWithFormat:@"%d",
[NSNumber numberWithInteger:[month intValue]]];
Format specifies type 'int' but the argument has type 'NSInteger *'(aka 'int *')
. Invece, secondo i documenti di Apple , sono andato conNSString *inStr = [NSString stringWithFormat:@"%d", (int)month];