Bagaimana seseorang mengonversi NSIntegerke NSStringtipe data?
Saya mencoba yang berikut ini, di mana bulan adalah NSInteger:
NSString *inStr = [NSString stringWithFormat:@"%d", [month intValue]];
Bagaimana seseorang mengonversi NSIntegerke NSStringtipe data?
Saya mencoba yang berikut ini, di mana bulan adalah NSInteger:
NSString *inStr = [NSString stringWithFormat:@"%d", [month intValue]];
Jawaban:
NSIntegers bukanlah objek, Anda mentransmisikannya ke long, untuk mencocokkan definisi arsitektur 64-bit saat ini:
NSString *inStr = [NSString stringWithFormat: @"%ld", (long)month];
[@(integerValue) stringValue]adalah pendekatan yang lebih bersih.
Cara Obj-C =):
NSString *inStr = [@(month) stringValue];
An NSIntegermemiliki metode stringValueyang dapat digunakan bahkan dengan literal
NSString *integerAsString1 = [@12 stringValue];
NSInteger number = 13;
NSString *integerAsString2 = [@(number) stringValue];
Sangat sederhana. Bukan?
var integerAsString = String(integer)
%zdberfungsi untuk NSIntegers ( %tuuntuk NSUInteger) tanpa cast dan peringatan pada arsitektur 32-bit dan 64-bit. Saya tidak tahu mengapa ini bukan " cara yang disarankan ".
NSString *string = [NSString stringWithFormat:@"%zd", month];
Jika Anda tertarik dengan mengapa ini berhasil, lihat pertanyaan ini .
Cara mudah melakukannya:
NSInteger value = x;
NSString *string = [@(value) stringValue];
Di sini, @(value)konversi yang diberikan NSIntegermenjadi NSNumberobjek yang Anda dapat memanggil fungsi yang diperlukan stringValue,.
Saat mengompilasi dengan dukungan untuk arm64, ini tidak akan menghasilkan peringatan:
[NSString stringWithFormat:@"%lu", (unsigned long)myNSUInteger];
Anda juga dapat mencoba:
NSInteger month = 1;
NSString *inStr = [NSString stringWithFormat: @"%ld", month];
Format specifies type 'int' but the argument has type 'NSInteger *'(aka 'int *'). Sebaliknya menurut dokumen Apple , saya pergi denganNSString *inStr = [NSString stringWithFormat:@"%d", (int)month];