Dalam Xcode, GDB memungkinkan Anda untuk mengubah variabel lokal saat debugging (lihat bagaimana mengubah nilai NSString saat debugging di XCode? ). Apakah LLDB menawarkan fungsi serupa? Jika demikian, bagaimana kita dapat menggunakannya?
173
Jawaban:
sumber
'expr myLabel.text = @"hello!"
tapi saya mendapatkanerror: property 'text' not found on object of type 'UILabel *'
... Ada pemikiran?expr (void)[label setText:@"Foo"]
harus melakukannya. Dot-Syntax biasanya tidak akan berfungsi di debugger. lldb mungkin menafsirkannya karena Anda ingin mengakses anggota c-struct, tapi saya tidak yakin apakah ini alasannya ia tidak akan berfungsi. Dot-Syntax tidak bekerja untukpo
keduanya. alih-alihpo label.text
Anda harus menggunakanpo [label text]
@property
.p
sebagai jalan pintas untukexpr
. Contoh:(lldb) p url = @"http://google.com"
e
sebagai jalan pintas untukexpr
. BTW,p
adalah alias untuk cetak yang merupakan alias untukexpr --
(hanya menilai input mentah, tanpa bendera)expr -o -- [object]
ataupo
umumnya memberi Anda hasil yang lebih berguna untuk objek.Hal-hal berikut ini berfungsi untuk saya. Saya menggunakan Xcode 8.
Jika Anda ingin menetapkan beberapa variabel (misalnya "dict") menjadi nil dan kemudian menguji aliran kode, Anda dapat mencoba yang berikut ini.
Ini akan terlihat seperti di konsol.
sumber
Jika Anda menggunakan Xcode 10 atau 11, masukkan breakpoint dengan benar setelah diinisialisasi ke variabel yang diperlukan, maka Anda dapat mengubah variabel dengan
po myString = "Hello World"
mudah.sumber