Karena kesalahan mengeluh bahwa nama yang Anda berikan adalah (null), kemungkinan besar ini disebabkan oleh panggilan [UIImage imageNamed:nil]. Atau lebih khusus lagi, meneruskan variabel belum ditetapkan, jadi itu sama dengan nil. Saat menggunakan stringWithFormat:akan menghilangkan kesalahan, saya pikir ada kemungkinan bagus itu tidak benar-benar melakukan apa yang Anda inginkan. Jika nama yang Anda berikan adalah sebuah nilnilai, maka menggunakan stringWithFormat: akan membuatnya mencari gambar yang secara harfiah bernama "(null)", seolah-olah Anda memanggil [UIImage imageNamed:@"(null)"].
Sesuatu seperti ini mungkin merupakan pilihan yang lebih baik:
if (name) {
UIImage *image = [UIImage imageNamed:name];
} else {
// Do something else
}
Anda mungkin ingin menyetel breakpoint di Xcode pada baris "Lakukan sesuatu yang lain", untuk membantu Anda mengetahui mengapa kode ini dipanggil dengan nilai nol di tempat pertama.