2012-03-27 11 views
15

Próbuję debugować aplikację na iOS i mam problemy z lldb w symulatorze. Wywoływanie metod klasy nie działa. Metody instancji działają dobrze.Jak wywoływać metody klasy w symulatorze iOS za pomocą 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> 

Próbowałem już symulatorów 4.3 i 5.1, ale oba mają te same problemy.

Wszystko działa poprawnie podczas debugowania na urządzeniu.

+3

Myślę, że może to być błąd w lldb, ale w międzyczasie znalazłem obejście tego problemu. To trochę niezręczne, ale działa: 'po [(Class) objc_getClass (" ClassName ") class]' – devioustree

Odpowiedz

19

To działa. Dzięki @deviustree, który odpowiedział w komentarzu powyżej.

komenda podstawowa jest skonstruowany tak:

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

Aby wywołać someClassMethodHere:

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

Dodawanie to rozszerzyć na przyjętym rozwiązaniem ...

Jeśli próbujesz przypisz nową wartość do zmiennej w lldb, tak jak ja, zamiast tylko wydrukować wartość, a następnie zrobić coś takiego ...

expr self.myArray = (NSArray*)[[(Class)objc_getClass("NSArray") class] arrayWithObjects:@"valueOne",@"valueTwo",@"etc",nil] 
Powiązane problemy