Kode saya di UITableViewController:
delegate.myData = [myData objectAtIndex:indexPath.row];
Bagaimana cara melihat nilai dari delegate.myData
atau indexPath.row
di Debugger? delegate.myData
harus array dan indexPath.row
sebuah int
. Saya hanya dapat melihat alamat memori dari objek delegate
dan indexPath
tetapi di mana myData
dan row
?
po obj
cepat adalahpo print(obj)
.Saya setuju dengan poster lain bahwa Xcode sebagai lingkungan berkembang harus menyertakan cara mudah untuk men-debug variabel. Nah, kabar baik, ADA satu!
Setelah mencari dan tidak menemukan jawaban / tutorial sederhana tentang cara men-debug variabel di Xcode, saya pergi menjelajah dengan Xcode itu sendiri dan menemukan ini (setidaknya untuk saya) penemuan yang sangat berguna.
Cara men-debug variabel Anda dengan mudah di Xcode 4.6.3
Di layar utama Xcode pastikan untuk melihat Area Debug bawah dengan mengklik tombol pojok kanan atas yang ditunjukkan di tangkapan layar.
Sekarang atur Breakpoint - garis dalam kode Anda di mana Anda ingin program Anda berhenti, dengan mengklik batas Area Kode Anda.
Sekarang di Area Debug cari tombol ini dan klik yang ada di tengah. Anda akan melihat bahwa daerah Anda sekarang terbagi menjadi dua.
Sekarang jalankan aplikasi Anda.
Ketika Breakpoint pertama tercapai selama eksekusi program Anda, Anda akan melihat di sisi kiri semua variabel Anda tersedia di breakpoint itu.
Anda dapat memperluas panah kiri pada variabel untuk lebih detail. Dan bahkan gunakan kolom pencarian untuk mengisolasi variabel yang Anda inginkan dan melihatnya berubah secara real time saat Anda "Masuk ke" cakupan Breakpoint.
Di sisi kanan Area Debug Anda, Anda dapat mengirim untuk mencetak variabel sesuai keinginan menggunakan klik tombol kanan mouse di atas variabel yang diinginkan.
Seperti yang Anda lihat, menu kontekstual itu penuh dengan opsi debugging yang sangat menarik. Seperti Watch yang telah disarankan dengan perintah yang diketik atau bahkan Edit Nilai… yang mengubah nilai runtime variabel Anda!
sumber
Anda juga bisa:
IMHO sedikit tersembunyi dan rumit ...
sumber
Kebingungan Anda berasal dari fakta bahwa properti yang dideklarasikan bukan (harus dinamai sama dengan) (instance) variabel.
Ekspresi
setara dengan
dan penugasan
setara dengan
dengan asumsi penamaan standar untuk properti yang disintesis.
Lebih lanjut,
delegate
mungkin dideklarasikan sebagai bertipeid<SomeProtocol>
, yaitu, kompilator belum dapat memberikan informasi tipe sebenarnya untukdelegate
saat itu, dan debugger mengandalkan informasi yang disediakan pada waktu kompilasi. Karenaid
merupakan tipe generik, tidak ada informasi waktu kompilasi tentang variabel instan didelegate
.Itulah alasan mengapa Anda tidak melihat
myData
ataurow
sebagai variabel.Jika Anda ingin memeriksa hasil pengiriman
-row
atau-myData
, Anda dapat menggunakan perintahp
ataupo
:atau gunakan jendela ekspresi (misalnya, jika Anda mengetahui
delegate
tipe sebenarnyaMyClass *
, Anda dapat menambahkan ekspresi(MyClass *)delegate
, atau klik kanandelegate
, pilihView Value as…
dan ketik tipe aktualdelegate
(misMyClass *
.).Karena itu, saya setuju bahwa debugger bisa lebih membantu:
Mungkin ada opsi untuk memberi tahu jendela debugger untuk menggunakan informasi jenis waktu proses alih-alih informasi waktu kompilasi. Ini akan memperlambat debugger, memang, tetapi akan memberikan informasi yang berguna;
Properti yang dideklarasikan dapat ditampilkan dalam grup yang disebut properti dan memungkinkan pemeriksaan (opsional) langsung di jendela debugger. Ini juga akan memperlambat debugger karena kebutuhan untuk mengirim pesan / menjalankan metode untuk mendapatkan informasi, tetapi akan memberikan informasi yang berguna juga.
sumber
Anda dapat mencetak nilai ke jendela konsol saat run-time. Berikut langkah-langkahnya:
sumber
Ini menjadi sedikit rumit. Objek ini adalah kelas atau struct kustom, dan mencari di dalamnya tidak semudah di Xcode seperti di lingkungan pengembangan lainnya.
Jika saya jadi Anda, saya akan men-NSLog nilai-nilai yang ingin Anda lihat, dengan beberapa deskripsi.
yaitu:
sumber
Coba Run-> Show-> Expressions
Masukkan nama larik atau apa pun yang Anda cari.
sumber