سؤال

هل يمكنك أن تكتب لي كتلة تتوافق مع هذا التعريف: (BOOL(^)(id))block.

الأقرب الذي حصلت عليه هو:

typedef BOOL (^birds)(MyObject*);
birds c = ^(MyObject* p){ return (BOOL)[p.something boolValue]; };

ولكن يبدو أنه تمرير هذا c في رسالة تريد (BOOL(^)(id))block لا يذهب.

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

المحلول

إذا كتلة BOOL (^block)(id) من المتوقع أن تحتاج إلى تمرير مثل هذه الكتلة وليس أ BOOL (^block)(MyObject *).

لذا جرب هذا:

typedef BOOL (^birds)(id);
birds c = ^(id pp) { MyObject *p = (MyObject *) pp; return [p.something boolValue]; };
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top