Ada dua situasi:
Ada kemungkinan bahwa suatu objek adalah [NSNull null]
, atau tidak mungkin.
Aplikasi Anda biasanya tidak boleh menggunakan [NSNull null];
Anda hanya menggunakannya jika Anda ingin meletakkan objek " null " ke dalam array, atau menggunakannya sebagai nilai kamus. Dan kemudian Anda harus tahu array atau kamus mana yang mungkin berisi nilai nol, dan yang mungkin tidak.
Jika Anda berpikir bahwa sebuah array tidak pernah mengandung [NSNull null]
nilai, maka jangan memeriksanya. Jika ada[NSNull null]
, Anda mungkin mendapatkan pengecualian tetapi tidak apa-apa: Pengecualian Objective-C menunjukkan kesalahan pemrograman. Dan Anda memiliki kesalahan pemrograman yang perlu diperbaiki dengan mengubah beberapa kode.
Jika suatu benda bisa menjadi [NSNull null]
, maka Anda memeriksa ini cukup hanya dengan pengujian
(object == [NSNull null])
. Memanggil isEqual
atau memeriksa kelas objek tidak masuk akal. Hanya ada satu [NSNull null]
objek, dan operator C tua biasa memeriksa untuk itu baik-baik saja dengan cara yang paling mudah dan paling efisien.
Jika Anda memeriksa NSString
objek yang tidak bisa [NSNull null]
(karena Anda tahu itu tidak bisa [NSNull null]
atau karena Anda baru saja mengeceknya berbeda [NSNull null]
, maka Anda perlu bertanya pada diri sendiri bagaimana Anda ingin memperlakukan string kosong, yaitu satu dengan panjang 0. Jika Anda memperlakukannya adalah null
string seperti nil
, kemudian tes (object.length == 0)
. object.length akan mengembalikan 0 jika object == nil
, jadi tes ini mencakup objek dan string nil dengan panjang 0. Jika Anda memperlakukan string dengan panjang 0 berbeda dari string nil, cukup periksa apakah object == nil
.
Terakhir, jika Anda ingin menambahkan string ke array atau kamus, dan string tersebut bisa nol, Anda memiliki pilihan untuk tidak menambahkannya, menggantinya @""
, atau menggantinya dengan [NSNull null]
. Menggantinya dengan @""
berarti Anda kehilangan kemampuan untuk membedakan antara "tanpa string" dan "string dengan panjang 0". Menggantinya dengan [NSNull null]
berarti Anda harus menulis kode ketika Anda mengakses array atau kamus yang memeriksa [NSNull null]
objek.