سؤال

كنت آمل أن يساعدني شخص ما في فهم بناء جملة الكتل عند استخدامه كأعضاء في الفصل. لدي بعض الرمز الذي يعمل بشكل جيد في الواقع:

@class Structure;
typedef void (^StructureDeleteCallback)(Structure *);

@interface StructureListDelegate : NRFCTableDelegate
{
    StructureDeleteCallback _structureDeleteCallback;
}

@property (nonatomic, copy) StructureDeleteCallback structureDeleteCallback;

@end

هذا يعمل ، لكني أود أن أفهم بناء جملة typedef بيان؛ وما إذا كان مطلوبًا بالفعل استخدام Typedef.

ما قرأته يقول ذلك باستخدام typedef في هذه الحالة يوصى به لأنه يجعل الكود أكثر وضوحًا ؛ لكنني لم أتمكن من الحصول على تجميعها على الإطلاق عند محاولة القيام بذلك بدون typedef. كان فهمي لـ Typedef هو أن بناء الجملة كان أساسًا:

typedef [actual type] [new name for type];

مثل:

typedef double CLLocationDegrees;

لكن بناء الجملة الخاص بي typedef البيان لا يتطابق مع هذا. لذلك أسئلتي هي:

  • كيف يمكن لبناء جملة بلدي typedefالبيان يكون مختلفا جدا عن الآخرينtypedef عبارات / ماذا يعني بناء الجملة الذي أستخدمه في الواقع للمترجم؟
  • هل من الممكن أن يكون لديك كتلة كعضو في الفصل دون استخدام typedef?
هل كانت مفيدة؟

المحلول

لقد طرحت نفسي سؤالًا على غرارك هنا: قم بمنع المراجع كمواءات مثيل في Objective-C

انظر إجاباتي هنا و هنا.

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