2010-04-02 4 views
1

Моя программа выглядит следующим образом:Как вызвать метод в методе init?

-(id)init 
{ 
    if ((self = [super init])) 
    { 
     //TargetWithActions *targetActions= [[TargetWithActions alloc] init]; 
     [self countDownSpeed123]; 
    } 
    return self; 
} 
-(void)countDownSpeed123 
{ 
    countDownSpeed = 5.0f; 
} 
@end 

предупреждение: «TargetWithActions» может не реагировать на «-countDownSpeed123»

Я получаю предупреждение в этом случае. Где я ошибаюсь в своей программе. Пожалуйста, объясни ? Спасибо.

Если мне нужно использовать значение countDownSpeed ​​в другом классе, как сохранить значение? Как я могу использовать в другом классе? Я думаю, что сохранить работы для типов указателей.

EDIT:

Извините за мое плохое кодирование и небрежность. Я ошибся в своей программе, которая очень тупо.

Спасибо за ответ.

  1. Во-первых: я не объявить функцию ( -(void)countDownSpeed123;) в интерфейсе.
  2. Во-вторых: я не включил , следующий в мой класс, где мне нужно было значение (countDownSpeed).

    TargetWithActions *targetActions= [[TargetWithActions alloc] init]; 
    [targetActions countDownSpeed123]; 
    

Теперь, я получил то, что мне нужно.

Thank you.

+2

Помните, что в вашем интерфейсе было объявлено "countDownSpeed123"? –

+0

Нужно больше этого. Пожалуйста, поставьте интерфейс, а не только реализацию. –

+0

Извините, я забыл объявить об этом в интерфейсе. Спасибо. Какой способ лучше написать метод. Использование (id) или (void)? –

ответ

3
  1. В классе, где вы пытаетесь использовать TargetWithActions, и в TargetWithActions.m убедитесь, что вы есть #import "TargetWithActions.h".

  2. В TargetWithActions.h убедитесь в вашем объявлении класса вы объявили метод -(void)countDownSpeed123;

  3. К сожалению, я не понимаю, что вы пытаетесь сделать с countDownSpeed123, это ничего (Недействительными) не возвращается, так что я 'не совсем уверен, что вы хотите retain. Если метод возвращает простое значение, например float или int, вам не нужно его сохранять, оно передается по значению - оно будет скопировано.

0

Извините за мое плохое кодирование и халатность. Я ошибся в своей программе, которая очень тупо. Спасибо за ответ. Во-первых: я не объявлял функцию (- (void) countDownSpeed123;) в интерфейсе. Во-вторых: я не включил следующее в мой класс, где мне понадобилось значение (countDownSpeed). TargetWithActions * targetActions = [[TargetWithActions alloc] init]; [targetActions countDownSpeed123]; Теперь я получил то, что мне нужно. Спасибо.

Смежные вопросы