تحذير initwithint، لم يتم العثور على أي طريقة؟
-
13-09-2019 - |
سؤال
لدي تحذير ولا يمكنني تحديد كيفية جعله يذهب بعيدا.
في لي. لدي هذا ...
-(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
.