سؤال

لدي تحذير ولا يمكنني تحديد كيفية جعله يذهب بعيدا.

في لي. لدي هذا ...

-(void)restartTimer;

ثم في بلدي .m لدي ...

-(void)restartTimer{
TimerViewController *TimerView = [[TimerViewController alloc]
  initWithInt:hStart
  number:mStart];

أحصل على هذا الخطأ:

تحذير: لا "-initwithint: عدد. وجدت الطريقة.

أنا متأكد من أنها واضحة للغاية، لا يزال الرمز يعمل. إذا كان بإمكان أي شخص اقتراح أي طرق لحلها سيكون رائعا. شكرا

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

المحلول

-(void)restartTimer{
    TimerViewController *TimerView = [[TimerViewController alloc]
        initWithInt:hStart
             number:mStart];
...
}

(1) TimerView يجب ان يكون timerView, ، وفقا لاتفاقيات التسمية الموضوعية

(2) يجب أن يكون TimeViewController.h الخاص بك إعلان شيء مثل:

- (TimerViewController *) initWithInt: (NSInteger) hStart number: (NSInteger) mStart;

(على افتراض أنك تريد أن تكون HSTART و MSTART أن تكون أعداد صحيحة).

(3) يجب عليك استيراد TimeViewController.h في ملف التنفيذ الذي يظهر التعليمات البرمجية أعلاه، إما بشكل مباشر أو غير مباشر (لأنه مستورد من قبل شيء آخر، يحتمل أن يكون ملف PCH المشروع).

(4) اسم أفضل للطريقة قد يكون:

- (TimerViewController *) initWithHStart: (NSInteger) hStart mStart: (NSInteger) mStart;

أو شيء مماثل - أي، يجب أن تصف الطريقة طبيعة الحجج التي يستغرقها.

نصائح أخرى

هذا يعني أن المترجم لا يمكن العثور على هذه الطريقة في وقت الترجمة. فقط تشمل رأس TimerViewController في الخاص بك .m ملف.

استيراد ملف الرأس الخاص بي سوف حل هذه المشكلة

لا يزال الرمز يعمل لأن الهدف - C يسمح بإرسال الرسائل إلى nil الكائنات وهكذا *TimerView يكون nil.

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