Pertanyaan Deskripsi NSObject dan debugDescription


Saya telah melihat menyebutkan deskripsi dan debugDeskripsi untuk keperluan debugging, tetapi belum melihat penjelasan yang tepat tentang kapan harus menggunakan yang dan dalam kondisi apa mereka dapat menghasilkan hasil yang berbeda.

Dokumentasi NSObject juga tidak memiliki apa pun di debugDescription. Pertanyaan: Kapan digunakan, dan dalam kondisi apa, seharusnya / akan output mereka berbeda?


32
2018-02-21 14:53


asal


Jawaban:


Catatan Teknis TN2124

Catatan: print-object sebenarnya memanggil metode debugDescription dari objek yang ditentukan. NSObject mengimplementasikan metode ini dengan memanggil ke metode deskripsi. Jadi, secara default, deskripsi debug objek adalah sama dengan deskripsi. Namun, Anda dapat mengganti debugDeskripsi jika Anda ingin memisahkannya; banyak objek Cocoa melakukan ini.

Jika Anda memiliki debugDescription diimplementasikan, mencetak objek di GDB akan menampilkan hasilnya. Mengetahui bahwa description digunakan di UI (saya tahu bindings melakukannya), Anda mungkin ingin menggunakan ini untuk mencetak beberapa informasi tambahan yang tidak perlu dilihat oleh pengguna.


38
2018-02-21 14:59



Satu tambahan untuk apa yang sudah diceritakan.

Jika Anda ingin meningkatkan output saat bekerja dengan po di lldb Anda dapat mengganti debugDescription metode. Hanya perlu diingat bahwa mencetak sendiri (objek itu sendiri) akan memanggil metode deskripsi. Jika karena alasan tertentu <ClassName: objectAddress> tidak baik untuk Anda juga mengganti metode itu.

Jadi poin saya di sini adalah untuk menyoroti bahwa pencetakan akan memanggil diri description metode, sedangkan po panggilan debugDescription yang secara default menyebut deskripsi. Memberikan ini Anda dapat membedakan hasil panggilan itu.


1
2017-10-20 08:31