Предупреждение initwithint, метод не найден? - PullRequest
0 голосов
/ 22 сентября 2009

У меня есть предупреждение, и я просто не могу понять, как заставить его исчезнуть.

В моем .h у меня есть это ...

-(void)restartTimer;

Тогда в моем .m у меня есть ...

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

Я получаю эту ошибку:

Предупреждение: нет '-initWithInt: номер.' метод найден.

Я уверен, что это очень просто, код все еще работает. Если кто-нибудь может предложить какие-либо способы ее решения, это было бы здорово. Спасибо

Ответы [ 4 ]

1 голос
/ 16 сентября 2010

Импорт заголовочного файла my .h решит эту проблему

1 голос
/ 23 сентября 2009
-(void)restartTimer{
    TimerViewController *TimerView = [[TimerViewController alloc]
        initWithInt:hStart
             number:mStart];
...
}

(1) TimerView должно быть timerView в соответствии с соглашениями по присвоению имен Objective C

(2) Ваш TimerViewController.h должен иметь объявление что-то вроде:

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

(при условии, что вы хотите, чтобы hStart и mStart были целыми числами).

(3) Вы должны импортировать TimerViewController.h в файл реализации, в котором указан вышеупомянутый код, прямо или косвенно (потому что он импортирован чем-то другим, возможно, файлом PCH проекта).

(4) Лучшее название метода может быть:

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

Или нечто подобное - то есть метод должен описывать природу аргументов, которые он принимает.

1 голос
/ 22 сентября 2009

Это означает, что компилятор не может найти такой метод во время компиляции. Просто включите заголовок TimerViewController в ваш файл .m.

0 голосов
/ 22 сентября 2009

Код все еще работает, потому что Objective C позволяет отправлять сообщения объектам nil, таким образом *TimerView равно nil.

...