Então, eu tenho um NSArray
"myArray" com NSNumber
s e NSString
s. Eu preciso deles em outro, UIView
então eu vou assim:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
DetailViewController *details = [[DetailViewController alloc] initWithNibName:@"DetailView" bundle:nil];
details.subjectText = [[myArray objectAtIndex:indexPath.row] objectForKey:@"subject"];
O subjectText funciona. Mas como posso tirar NSNumber
proveito disso? (Eu realmente precisa deles como cordas ...) Gostaria de converter um NSString
fora de um NSNumber
como este:
NSString *blah = [NSNumber intValue]
. Mas não sei como configurá-lo no código acima ...
objectForKey
. Portanto, você precisará extrair os valores apropriados disso antes de tentar converter. Observe que a maioria dos tipos de objetos Cocoa, incluindo NSNumber, pode ser convertida em seqüências de caracteres chamando odescription
método (ou usando%@
uma seqüência de caracteres de formato).Respostas:
Experimentar:
fonte
%f
assim:[NSString stringWithFormat:@"%f", yourDouble];
Você pode fazer isso com:
fonte
fonte
ou tente
NSString *string = [NSString stringWithFormat:@"%d", [NSNumber intValue], nil];
fonte
O engraçado é que o NSNumber converte automaticamente em string se se tornar parte de uma string. Eu não acho que esteja documentado. Tente esse:
Irá imprimir:
Funciona em Mac e iOS
Este não funciona:
fonte
%@
especificador de formato enviará a-description
mensagem para o objeto receptor correspondente. Você pode fazer o seu trabalho última linha com o mesmo espírito escrevendo:NSString *myNSNumber2 = [[NSNumber numberWithFloat:-34512.23f] description];
. Tanto quanto eu posso dizer,NSNumber
os métodosdescription
estringValue
fazem a mesma coisa.No Swift você pode fazer assim
fonte
No Swift 3.0
Podemos obter o valor numérico em String.
fonte