Я пытаюсь создать простую заметку. Когда я запускаю проект, в области отладки он говорит;Завершение приложения из-за неперехваченного исключения «NSInvalidArgumentException» - непризнанный селектор
[1752:19d03] -[TableViewController createEditableCopyOfDatabasteIfNeeded]: unrecognized selector sent to instance 0xa147d20
[1752:19d03] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[TableViewController createEditableCopyOfDatabasteIfNeeded]: unrecognized selector sent to instance 0xa147d20'
И мой код, включает в себя createEditableCopyOfDatabasteIfNeeded, является;
- (void)createEditableCopyOfDatabaseIfNeeded {
NSFileManager *fileManager = [NSFileManager defaultManager];
NSString *documentDirectory = [self applicationDocumentsDirectory];
NSString *writableDBPath = [documentDirectory stringByAppendingPathComponent:@"NotesList.plist"];
BOOL dbexits = [fileManager fileExistsAtPath:writableDBPath];
if (!dbexits) {
NSString *defaultDBPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"NotesList.plist"];
NSError *error;
BOOL success = [fileManager copyItemAtPath:defaultDBPath toPath:writableDBPath error:&error];
if (!success) {
NSAssert1(0, @"Failed to create writable database file with message '%@'.", [error localizedDescription]);
}
}
}
Где находится проблема? Это может быть легко, но я новичок в Xcode. Спасибо за помощь
Прежде ваш вопрос является 'непризнанным selector' это потому, что вы пытаетесь вызвать метод под названием' createEditableCopyOfDatabaseIfNeeded' на 'UITableView' и он не знает, что это такое. Где вы называете 'createEditableCopyOfDatabaseIfNeeded'? Во-вторых, вам не нужно показывать 'main.m', где он завершит выход, если вы не поймаете исключение, это называется« Uncaught Exception »и убьет ваше приложение. Сделайте так, как ответ «Epatel» говорит о фактическом прорыве самого исключения. – Popeye