Pergunta

Eu tenho um aviso e apenas não pode trabalhar para fora como para torná-lo ir embora.

Na minha .h eu tenho essa ...

-(void)restartTimer;

Então o na minha .m eu tenho ...

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

Eu recebo este erro:

Atenção: não '-initWithInt: número.' método encontrado.

Eu estou certo de que é muito simples, o código ainda funciona. Se alguém pode sugerir alguma maneira de resolvê-lo que seria ótimo. Graças

Foi útil?

Solução

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

(1) deve ser TimerView timerView, como por Objectivo-C convenções de nomenclatura

(2) Seu TimerViewController.h deve ter uma declaração algo como:

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

(supondo que você quer HStart e mINÍCIO ser inteiros).

(3) Você deve importar TimerViewController.h no arquivo de implementação que o código acima aparece, direta ou indiretamente (porque ele é importado por outra coisa, potencialmente arquivo PCH do projeto).

(4) Um nome melhor para o método poderia ser:

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

Ou algo similar -. Isto é, o método deve descrever a natureza dos argumentos que leva

Outras dicas

Isto significa que o compilador pode não encontrar um tal método em tempo de compilação. Basta incluir o cabeçalho de TimerViewController em seu arquivo .m.

Importar o arquivo de cabeçalho minha .h irá resolver este problema

O código ainda funciona porque Objective-C permite enviar mensagens para nil objetos assim *TimerView é nil.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top