سؤال

هل يتم الخلط بين تفريغ الطبقة من قبل كفوبجيكتس / ستروكتس?لقد استخدمت تفريغ الطبقة على تطبيق واحد من حجة الأسلوب كان بنية أرغ 1 وهو بينستانتمسيج:

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;

وبالتالي, كيف يمكنني الحصول على كفسترينغريف أو نسترينغ* من هذا أرغ 1?أنا أعتقد أن تفريغ الطبقة هو استبدال بعض كفسترينغريف من قبل تعريفات كفسترينغ ، لكنه مجرد تخمين...كل ما أريده هو الحصول على كفسترينغريف من أرغ 1 وهو بينستانتمسيج.

ثناكس!

هل كانت مفيدة؟

المحلول

التطبيق يستخدم المجمع ج C لكائنات الأساس الأساسية.ال struct CFString في BInstantMessage هو كائن من هذا النوع.تريد (NSString *)(arg1._field2.mCFRef).

ال void **_vptr$CFObject الحقل هو التلميح الرئيسي هنا-فهو يمثل الجدول للطبقة الفائقة الافتراضية CFObject - جنبا إلى جنب مع ج المشترك C m اصطلاح تسمية البادئة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top