Как вызвать методы класса в iOS-симуляторе с lldb?

Я пытаюсь отладить приложение iOS, и у меня возникают проблемы с 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>

Я пробовал симуляторы 4.3 и 5.1, но оба они имеют одинаковые проблемы.

Все отлично работает при отладке устройства.

Ответы

Ответ 1

Это работает. Спасибо @devioustree, который ответил в комментарии выше.

Основная команда структурирована следующим образом:

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

Чтобы вызвать someClassMethodHere:

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

Ответ 2

Добавьте это, чтобы расширить принятый ответ...

Если вы пытаетесь присвоить новое значение переменной в lldb, как я, вместо того, чтобы просто распечатать значение, сделайте что-то вроде этого...

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