Xcode - что-то может не отвечать на - PullRequest
1 голос
/ 14 февраля 2011

Я получаю некоторые предупреждения о том, что что-то может не отвечать на функцию.

#import "Lane.h"
#import "TrafficController.h"


@implementation Lane
@synthesize controller;


-(void)awakeFromNib
{
    [controller registerLane:self]; -- 'TrafficController' may not respond to '-registerlane'
    srandom(time(NULL));
    [self start];
}

-(void)start
{
    long newStartTime = random() % 200;
    carStartTimer = [NSTimer scheduledTimerWithTimeInterval:newStartTime / 1000.0 target:self selector:@selector(startTimerFired:) userInfo:nil repeats:YES];
    [carStartTimer retain];
}

-(void)startTimerFired: (NSTimer*)timer
{
    //pick a random number of milliseconds to fire again at

    long newStartTime = random() % 1500 + 500;

    [timer setFireDate:[NSDate datewWithTimeIntervalSinceNow:newStartTime / 1000.0]];
    [controller startCarFromLane:self]; - 'TrafficController' may not respond to '-startCarFromLane'

    NSLog(@"Starting new car");
}

-(void)stop
{
    [carStartTimer invalidate];
    [carStartTimer release];
    carStartTimer = nil;
}

@end

Означает ли это, что эти функции не объявлены в этом или другом заголовочном файле? Или это означает что-то еще?

Ответы [ 2 ]

2 голосов
/ 14 февраля 2011

В вашем TrafficController.h есть ли у вас строка вроде:

-(void) registerLane: (type) variablename;

Если нет, вы должны иметь

0 голосов
/ 14 февраля 2011

Сделайте то, что говорит @Dave, и сообщите компилятору о ваших методах в вашем заголовочном файле.

Вы также можете успокоить это сообщение, манипулируя порядком методов в вашем файле реализации. Если компилятор уже видел метод (в данном случае -(void)registerLane:), то при последующем вызове он не потерпит боли, даже если его нет в вашем файле .h.

Таким образом, вы можете иметь внутренние методы, которые не объявляются как доступные в вашем .h, но вы можете вызывать их внутри без предупреждений компилятора. НО, в большинстве случаев это ошибка, и вы, вероятно, просто забыли поместить ее в файл .h.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...