Класс dump и CFObjects - PullRequest
       18

Класс dump и CFObjects

0 голосов
/ 26 марта 2011

Запутывает ли дамп класса CFObjects / структуры?Я использовал дамп класса в приложении, и одним из аргументов метода была struct arg1, которая представляет собой BInstantMessage:

struct BInstantMessage {
    void **_field1;
    struct CFString _field2;
    unsigned short *_field3;
    struct DTextStyle _field4;
    struct BUser *_field5;
    struct BChat *_field6;
};

struct CFString {
    void **_vptr$CFObject;
    struct __CFString *mCFRef;
    _Bool mIsMutable;
};

struct __CFString;

Итак, как я могу получить CFStringRef или NSString * из этого arg1?Я полагаю, что дамп класса заменяет некоторые CFStringRef определениями CFString, но это всего лишь предположение ... Все, что я хочу, это получить CFStringRef из arg1, который является BInstantMessage.

Thnaks!

1 Ответ

0 голосов
/ 27 марта 2011

Приложение использует оболочку C ++ для объектов Core Foundation. struct CFString в BInstantMessage является объектом этого типа. Вы хотите (NSString *)(arg1._field2.mCFRef).

Поле void **_vptr$CFObject является основным указанием здесь - оно представляет виртуальную таблицу для виртуального суперкласса CFObject - в сочетании с общим соглашением об именовании префиксов C ++ m.

...