2012-03-27 29 views
15

Tôi đang cố gắng gỡ lỗi ứng dụng iOS và tôi đang gặp sự cố với lldb trong trình mô phỏng. Gọi phương thức lớp dường như không hoạt động. Phương pháp thể hiện hoạt động tốt.Cách gọi các phương thức lớp trong trình mô phỏng iOS bằng lldb?

(lldb) po Category 
<no result> 
(lldb) po [Category class] 
error: Couldn't prepare the expression for execution in the target 
(lldb) po self 
(TagsTableViewController *) $5 = 0x085585a0 <TagsTableViewController: 0x85585a0> 

Tôi đã thử các trình mô phỏng 4.3 và 5.1 nhưng cả hai đều có cùng vấn đề.

Mọi thứ hoạt động tốt khi gỡ lỗi trên thiết bị.

+3

Tôi nghĩ rằng nó có thể là một lỗi trong lldb nhưng tôi đã tìm thấy một cách giải quyết trong thời gian chờ đợi. Đó là một chút khó xử nhưng nó hoạt động: 'po [(Lớp) objc_getClass (" ClassName ") lớp]' – devioustree

Trả lời

19

Tác phẩm này. Nhờ @devioustree đã trả lời trong một bình luận ở trên.

lệnh cơ bản được cấu trúc như thế này:

po [(Class)objc_getClass("ClassName") class] 

Để gọi someClassMethodHere:

po [[(Class)objc_getClass("ClassName") class] someClassMethodHere] 
0

Thêm này để mở rộng trên câu trả lời chấp nhận ...

Nếu bạn đang cố gắng chỉ định một giá trị mới cho một biến trong lldb như tôi thay vì chỉ in ra giá trị sau đó làm một cái gì đó như thế này ...

expr self.myArray = (NSArray*)[[(Class)objc_getClass("NSArray") class] arrayWithObjects:@"valueOne",@"valueTwo",@"etc",nil] 
Các vấn đề liên quan