0

我正在尝试制作一个简单的笔记应用程序。当我运行项目时,在调试区域中,它说

[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 的新手。 感谢帮助

4

4 回答 4

4

我建议你在 Xcode 中也为所有异常添加一个断点。

在此处输入图像描述

于 2013-04-13T11:57:57.473 回答
0

Since you've defined the function as -(void) you should call it through an instance of TableViewController and not in the "static" way [TableViewController createEditableCopyOfDatabasteIfNeeded]

于 2013-04-13T11:41:34.703 回答
0

听起来您正在调用createEditableCopyOfDatabaseIfNeeded未在 class 中定义的方法TableViewController。您可以进入断点选项卡并添加新断点(加号按钮),然后选择一个 checkamrk 以保留所有异常或类似的东西。这应该可以帮助您跟踪应用程序崩溃的位置。

什么类在实现createEditableCopyOfDatabaseIfNeeded方法?

于 2013-04-13T10:49:09.010 回答
0

该错误确实为您提供了在这种情况下所需的所有信息。您已经定义了函数,但它不在 TableViewController 类中。您应该编辑您的代码以在它确实存在的类中调用它。

于 2013-04-13T10:56:33.093 回答