Saya memiliki beberapa objek di aplikasi saya yang bisa menjadi nihil di beberapa titik dan saya memiliki metode yang secara teori digunakan untuk membuat objek ini menjadi nihil.
Namun, jika saya mencoba memasukkan objek yang tidak ada ke nihil, aplikasi akan mogok.
Misalnya...
[object1 release];
object1 = nil;
//... dan setelah itu
[object1 removeFromSuperview]; // this will crash
Lalu saya berpikir, mengapa tidak menguji untuk melihat apakah objek tersebut ada sebelum menghapus...
if (object1 != nil)
[object1 removeFromSuperview];
// this will crash too, because object1 cannot be tested for nil because it does not exist
Bagaimana saya bisa memeriksa apakah objek itu ada sebelum menguji apakah itu nihil? sesuatu sebagai
if (object1 exists( {
if(object1 != nil))
[object1 removeFromSuperview)
}
apakah ini mungkin?
SAYA MENAMBAHKAN INI UNTUK MENJELASKAN...
yang saya maksud adalah ini: bayangkan saya telah mendeklarasikan objek1 di header dan menginisialisasi kode. Jadi, itu ada dan menunjuk pada referensi yang valid. Suatu saat, benda tersebut mungkin akan terlepas, sehingga acuannya tetap menunjuk pada suatu benda namun benda tersebut telah dibebaskan. Bahkan jika saya meletakkan objek tersebut ke nil setelah melepaskannya, saya tidak dapat melakukan apa pun dengannya.
Masalahnya begini: Saya punya beberapa metode yang tidak sinkron. Salah satunya memindai beberapa objek dan menghapusnya jika ditemukan. Saya harus memeriksa apakah objek tersebut ada dan referensinya menunjuk ke objek yang valid sebelum melepaskannya lagi. Inilah intinya: bagaimana cara menguji apakah objek tersebut ada dan referensinya menunjuk ke objek yang valid dan ada sebelum melepaskannya lagi, untuk membatalkan pelepasan kembali objek yang sudah dirilis dan membuat aplikasi mogok.