Вызывает ли отсутствующая подпись метода прерывание работы приложения? - PullRequest
0 голосов
/ 08 марта 2011

Вот сообщение об ошибке:

предупреждение: «ReaderAppDelegate» может не отвечать на «-checkForDatabase» (Предполагается, что сообщения без соответствующей сигнатуры метода возвращают «id» и принимают «...» какАргументы.

Я поставил точку останова в методе 'checkForDatabase' в приведенном ниже коде, и он так и не получил ... приложение умерло. Я предполагаю, что его предупреждение как-то связано с прерыванием.Как это исправить? Нужно ли объявлять 'checkForDatabase' в моем файле .h?

//---------------    application finished launching    ----------------|
- (void)applicationDidFinishLaunching:(UIApplication *)application  {
    //  create the d/b or get the connection value
    [self checkForDatabase];    

}

//--------------    check for database or create it    ----------------|
- (void)checkForDatabase  {

    NSFileManager *filemanager = [NSFileManager defaultManager];
    NSString *databasePath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] 
            stringByAppendingString:@"/ppcipher.s3db"];

    if(![filemanager fileExistsAtPath:databasePath]) {  //Database doesn't exist yet, so we create it...
        NSString *defaultDBPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/ppcipher.s3db"];
        // remainder of code goes here...
    }
}

Ответы [ 3 ]

1 голос
/ 08 марта 2011

Как вы упомянули, вам нужно объявить функцию в вашем интерфейсе, иначе динамическая (то есть: среда выполнения) не будет знать, что метод существует.

0 голосов
/ 08 марта 2011

Вам необходимо объявить checkForDatabase в вашем заголовочном файле или в частной категории в файле реализации.Вы также можете определить реализацию метода выше реализации applicationDidFinishLaunching.

0 голосов
/ 08 марта 2011

Было бы неплохо объявить метод -checkForDatabase в интерфейсе вашего класса, но я не думаю, что это является причиной вашего сбоя. Посмотрите на консоли сообщение, которое, вероятно, укажет причину сбоя.

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