Apakah ada metode yang bisa saya timpa di kelas khusus saya sehingga kapan
NSLog(@"%@", myObject)
disebut, itu akan mencetak bidang (atau apa pun yang saya anggap penting) dari objek saya? Saya kira saya sedang mencari setara Objective-C dari Jawa toString()
.
objective-c
tostring
nslog
George Armhold
sumber
sumber
description
properti dicadangkan ... dan akan memberikan informasi debug yang berguna! Dalam hal ini, Anda harus membuat nama metode unik Anda sendiri.debugDescription
juga dipesan? Meskipun saya pikirDebugDescription
seharusnya digunakan oleh debugger seperti LLDB.Tambahkan ini ke
@implementation
kelas Foto Anda:sumber
Anda dapat mengganti metode deskripsi NSObject:
Mengenai masalah logging saya merekomendasikan posting blog ini untuk login yang lebih baik di Objective-C.
sumber
Ada dua fungsi yang bisa Anda gunakan.
Ini akan ditampilkan ketika Anda meletakkan objek Anda sebagai, IE parameter untuk
NSLog
. Fungsi deskripsi lainnya adalah:Ini akan dipanggil ketika Anda melakukannya
po anInstanceOfYourClass
di jendela perintah debug. Jika kelas Anda tidak memilikidebugDescription
fungsi, maka hanyadescription
akan dipanggil.Perhatikan bahwa kelas dasar
NSObject
memang telahdescription
diimplementasikan, tetapi ini cukup sederhana: hanya menampilkan alamat objek. Inilah sebabnya saya menyarankan Anda menerapkandescription
di kelas mana pun Anda ingin mendapatkan info, terutama jika Anda menggunakandescription
metode dalam kode Anda. Jika Anda menggunakannyadescription
dalam kode Anda, saya sarankan Anda menerapkandebugDescription
juga, juga membuatdebugDescription
lebih banyak verbose.sumber
Ini akan menampilkan suara yang tersedia:
sumber