Jika Anda ingin membuat array bilangan bulat, dapatkah Anda menggunakan NSInteger? Apakah Anda harus menggunakan NSNumber? Jika ya, lalu mengapa?
ios
objective-c
neuromancer
sumber
sumber
Jawaban:
Anda dapat menggunakan array C lama biasa:
Atau, Anda dapat menggunakan
NSArray
atauNSMutableArray
, tetapi di sini Anda perlu menggabungkan setiap bilangan bulat di dalam sebuahNSNumber
instance (karenaNSArray
objek dirancang untuk menampung instance kelas).sumber
NSArray
, saya yakin Anda tidak akan merasakan kinerja yang sukses.Array C:
Larik Objective-C:
Swift Array:
Ini juga benar:
NB: array sangat diketik di Swift; dalam hal ini, kompilator menyimpulkan dari konten bahwa array adalah array bilangan bulat. Anda juga dapat menggunakan sintaks tipe eksplisit ini:
Jika Anda menginginkan array Ganda, Anda akan menggunakan:
atau:
sumber
Jika Anda ingin menggunakan NSArray, Anda memerlukan kelas Objective-C untuk dimasukkan ke dalamnya - karenanya persyaratan NSNumber.
Yang mengatakan, Obj-C masih C, jadi Anda dapat menggunakan array C biasa dan menyimpan int biasa daripada NSNumbers jika perlu.
sumber
Anda dapat menggunakan CFArray sebagai pengganti NSArray. Berikut adalah artikel yang menjelaskan caranya.
Hal yang sama juga berlaku untuk versi CoreFoundation dari penampung lain.
sumber
Saya membuat pembungkus Objective C sederhana di sekitar array C lama yang bagus untuk digunakan dengan lebih nyaman: https://gist.github.com/4705733
sumber
Jika urutan bilangan bulat Anda tidak diperlukan, dan jika hanya ada nilai unik
Anda juga dapat menggunakan NSIndexSet atau NSMutableIndexSet Anda akan dapat dengan mudah menambah dan menghapus integer, atau memeriksa apakah array Anda berisi integer dengan
Lihat dokumentasi untuk info lebih lanjut.
sumber
NSSet
(dan menggunakan integer yang dibungkus dengan sebuahNSNumber
)?Saya pikir jauh lebih mudah menggunakan NSNumbers. Ini yang perlu Anda lakukan:
sumber
for
atau hanya larik lain untuk angka, laluarrayWithArray
.