Saya mengerti persis mengapa peringatan variabel yang tidak terpakai terjadi. Saya tidak ingin menekannya secara umum, karena mereka sangat berguna dalam banyak kasus. Namun, pertimbangkan kode berikut (dibuat-buat).
NSError *error = nil;
BOOL saved = [moc save:&error];
NSAssert1(saved, @"Dude!!1! %@!!!", error);
Laporan Xcode yang saved
merupakan variabel yang tidak digunakan, padahal tentu saja tidak. Saya menduga ini karena NSAssert1
makro. The NS_BLOCK_ASSERTIONS
makro tidak didefinisikan, sehingga C pernyataan Objective pasti diaktifkan.
Meskipun tidak menyakiti apa pun, saya merasa tidak rapi dan menjengkelkan, dan saya ingin menekannya, tetapi saya tidak yakin bagaimana melakukannya. Menempatkan variabel untuk dirinya sendiri menghilangkan peringatan compiler, tapi saya lebih suka melakukannya dengan cara yang "benar" jika hal seperti itu ada.
sumber
'saved' was marked as unused but was used
Di Xcode Anda dapat mengatur peringatan untuk "Variabel yang Tidak Digunakan." Buka "Build Settings" untuk target dan filter dengan kata "unused"
Ini tangkapan layarnya:
Saya sarankan Anda hanya mengubahnya untuk Debug. Dengan begitu, Anda tidak akan melewatkan apa pun dalam versi rilis Anda.
sumber
Coba seperti ini. Ini berhasil untuk saya. Ini akan berhasil juga untuk Anda.
sumber
'saved' was marked as unused but was used
Satu-satunya cara sederhana dan portabel untuk menandai variabel sebagai digunakan adalah… dengan menggunakannya.
Anda mungkin senang dengan ekstensi khusus kompiler yang telah dijelaskan.
sumber
SUMBER
sumber
coba dengan: atribut __unused. Bekerja di Xcode 5
sumber
Anda dapat menyetel peringatan "Tidak" LLVM compiler 2.0 pada "Rilis"
sumber
Ini adalah cara Anda melakukannya di C dan juga Objective-C.
Meskipun Anda tidak mengaktifkan peringatan, sebaiknya tandai nilai kembalian sebagai diabaikan secara eksplisit. Ini juga menunjukkan kepada pengembang lain, bahwa Anda tidak hanya melupakan nilai pengembalian - Anda memang secara eksplisit memilih untuk mengabaikannya.
EDIT: Penyusun mengabaikan cast ke
void
, jadi seharusnya tidak memengaruhi performa - itu hanya anotasi manusia yang bersih dan bagus.sumber
(void)
adalah cara paling jelas untuk pergi, terima kasih!Buat itu mengambil dua baris. Pisahkan deklarasi dan nilai default
sumber