Eu gostaria de converter um int
em um NSString
no Objetivo C.
Como posso fazer isso?
objective-c
Yogini
fonte
fonte
NSString *strValue = @(myInt).stringValue;
stringValue
, mas todos têmdescription
- então, como boa prática, é melhor se acostumar a usardescription
(NSNumber
sim, não precisa se preocupar aqui). Tente isto (description
imprimirá a data, masstringValue
travará):NSNumber *test = (id)[NSDate date]; NSLog(@"description: %@", test.description); NSLog(@"string value: %@", test.stringValue);
@(myInt)
é uma expressão em caixa para[NSNumber numberWithInt:]
e sempre retornará um NSNumber quando for fornecido um int.[NSNumber stringValue]
sempre retornará um NSString. No código do seu comentário, forçar o lançamento com(id)
e atribuir a um tipo diferente é um erro de programação claro: você nunca deve fazer isso. É como varrer um método e então apresentar um argumento sobre aquele método não estar fazendo o que estava fazendo originalmente.!
) e você descobrirá que estava fazendo isso incorretamente em Objective-C. Se o objetotest
não foi criado por você, então não é sua responsabilidade. Você pode tentar chamarisKindOfClass:
todos os seus parâmetros recebidos, mas mesmo isso pode ser enganado (passando uma estrutura em vez de um NSObject, por exemplo). Portanto, não faça isso: apenas documente explicitamente os tipos esperados.(id)
é um erro, foi apenas para demonstrar o ponto quedescription
prefere IMOstringValue
(posso estar errado, não programei em ObjC por anos)fonte
@(myInt)
é uma expressão em caixa , ela retorna um NSNumber.Esta é uma de muitas maneiras.
fonte
Se esta string for para apresentação ao usuário final, você deve usar
NSNumberFormatter
. Isso adicionará milhares de separadores e respeitará as configurações de localização para o usuário:Nos EUA, por exemplo, isso criaria uma string
10,000
, mas na Alemanha, sim10.000
.fonte