我正在尝试创建一个简单的笔记应用。当我运行项目时,在调试区域中,它表示 ;
[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的新手。 感谢您的帮助
答案 0 :(得分:4)
我建议您在Xcode中为所有例外添加断点。
答案 1 :(得分:0)
听起来您正在调用未在类createEditableCopyOfDatabaseIfNeeded
中定义的方法TableViewController
。您可以使用断点选项卡并添加新断点(加上按钮)并选择一个checkamrk来保留所有异常或类似的东西。这应该可以帮助您跟踪应用崩溃的位置。
哪个类正在实施createEditableCopyOfDatabaseIfNeeded
方法?
答案 2 :(得分:0)
错误确实为您提供了此案例中所需的所有信息。您已定义函数,但它不在TableViewController类中。您应该编辑代码以在其存在的类中调用它。
答案 3 :(得分:0)
由于您已将函数定义为 - (void),因此应通过TableViewController
的实例调用它,而不是以“静态”方式调用[TableViewController createEditableCopyOfDatabasteIfNeeded]