Jadi saya punya NSArray
"myArray" dengan NSNumber
s dan NSString
s. Saya membutuhkan mereka di yang lain UIView
jadi saya pergi seperti ini:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
DetailViewController *details = [[DetailViewController alloc] initWithNibName:@"DetailView" bundle:nil];
details.subjectText = [[myArray objectAtIndex:indexPath.row] objectForKey:@"subject"];
SubjekTeks berfungsi. Tapi bagaimana saya bisa mendapatkan NSNumber
itu? (Saya benar-benar membutuhkan mereka sebagai string ...) saya akan mengkonversi NSString
keluar dari NSNumber
seperti ini:
NSString *blah = [NSNumber intValue]
. Tapi saya tidak tahu cara mengaturnya di kode di atas ...
objectForKey
. Jadi, Anda perlu mengekstrak nilai yang sesuai dari itu sebelum mencoba mengonversi. Perhatikan bahwa sebagian besar tipe objek Kakao, termasuk NSNumber, dapat dikonversi ke string dengan memanggildescription
metode (atau menggunakan%@
string format).Jawaban:
Mencoba:
sumber
%f
seperti ini:[NSString stringWithFormat:@"%f", yourDouble];
Anda dapat melakukannya dengan:
sumber
sumber
atau coba
NSString *string = [NSString stringWithFormat:@"%d", [NSNumber intValue], nil];
sumber
Yang lucu adalah bahwa NSNumber mengkonversi ke string secara otomatis jika itu menjadi bagian dari string. Saya tidak berpikir itu didokumentasikan. Coba ini:
Itu akan mencetak:
Bekerja di Mac dan iOS
Yang ini tidak berfungsi:
sumber
%@
penentu format akan mengirim-description
pesan ke objek penerima yang sesuai. Anda dapat membuat terakhir kerja baris Anda dalam semangat yang sama dengan menulis:NSString *myNSNumber2 = [[NSNumber numberWithFloat:-34512.23f] description];
. Sejauh yang saya tahu,NSNumber
'sdescription
danstringValue
metode melakukan hal yang sama.Di Swift Anda bisa melakukan ini
sumber
Di Swift 3.0
Kita bisa mendapatkan nilai angka di String.
sumber