سؤال

هذا الخط من التعليمات البرمجية يعمل تماما

[self explodeBomb:obj];

ولكن إذا كنت استبدالها مع السطر التالي ، أحصل على استثناء نسينفاليدارغومنت ، مع السبب هو محدد غير معترف بها.

 [self performSelector:@selector(explodeBomb) withObject:obj ];

تعريف الطريقة هو كما يلي:

 -(void)explodeBomb:(SKNode *)bomb

وأنا أعلم ، وهذا يجب أن يكون لي عدم فهم شيء أساسي.ولكن لماذا أنا قادرة على استدعاء الأسلوب مباشرة مع أي مشاكل ، ولكن عندما أحاول استخدام performSelector انها تفجر?بالنسبة إلى السجل ، يتم تعريف الكائن على أنه معرف.حاولت تغيير توقيع إكسبلوديبومب لاتخاذ معرف ومن ثم يلقي صراحة داخل الأسلوب ، ولكن هذا ألقى نفس الاستثناء.أحد يعرف ما هيك أفعله خطأ?

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

المحلول

استخدام : والكتابة مثل أدناه

 [self performSelector:@selector(explodeBomb:) withObject:obj ];

منذ الطريقة الخاصة بك explodeBomb لديه حجة لذلك عليك أن تحدد :

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