【问题标题】:what is the problem if program is crash, when click save button?如果程序崩溃,单击保存按钮时会出现什么问题?
【发布时间】:2010-06-03 14:03:53
【问题描述】:

我的主应用程序中嵌入了一个简单的待办事项列表, 我已经在一个单独的项目中建立了它,然后我小心地将它添加到我的主项目中,一切都很好,但是当我编写待办事项并单击保存按钮时,程序崩溃了!有什么问题?

我的代码:

self.navigationItem.rightBarButtonItem =
[[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemSave
                                               target:self
                                               action:@selector(save_Clicked:)]
 autorelease];

那么 save_Clicked 的实现是:

- (void) save_Clicked:(id)sender {
    HomeAppDelegate *appDelegate =
    (HomeAppDelegate *)[[UIApplication sharedApplication] delegate];

    //Create a todo Object.
    todo *todoObj = [[todo alloc] initWithPrimaryKey:0];
    todoObj.todotitle = txttodotitle.text;
    todoObj.tododes = txttododes.text;
    /*
     NSString *temp = [[NSString alloc] initWithString:txttododes.text];
     todoObj.tododes = temp;
     [temp release];
     */
    todoObj.isDirty = NO;
    todoObj.isDetailViewHydrated = YES;

    //Add the object
    [appDelegate addtodo:todoObj];

    //Dismiss the controller.
    [self.navigationController dismissModalViewControllerAnimated:YES];
}

并且控制台中的错误消息输出是:

2010-06-03 17:12:45.720 主页[29728:207] 没有错误 2010-06-03 17:12:45.726 Home[29728:207] 警告:由于 tableView:accessoryTypeForRowWithIndexPath: in 的委托实现,使用旧版单元格布局。请删除此方法的实现并设置单元格属性附件类型和/或编辑附件类型以移动到新的单元格布局行为。在以后的版本中将不再调用此方法。 2010-06-03 17:12:59.447 Home[29728:207] * -[todo addtodo]、/Users/HOME/Desktop/withretriveAnn/Home 副本 5-ToDO/Classes/todo.m 中的断言失败: 90 2010-06-03 17:12:59.448 Home[29728:207] * 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“创建添加语句时出错。 '没有这样的表:待办事项''

  • 我确实使用了 iPhone 数据库来保存 ToDo 列表。

【问题讨论】:

  • 可能有助于发布代码...
  • 提供你的代码,或者至少,当你的应用程序崩溃时,在 Xcode 控制台中输出错误消息。
  • ……它可以在任何地方。没有看到代码,这个问题是无法回答的。如果没有看到崩溃消息,这个问题是不可能回答的。请更新您的问题
  • 好的对不起,我用代码和错误消息更新了我的问题,请帮助我谢谢。
  • 看来您正在使用 Core Data 并且没有创建“待办事项”实体。在您的 XCode 项目中的 Resources 下,双击 xcdatamodel 文件,然后添加一个“todo”实体或检查它是否拼写错误或大小写不同。

标签: iphone objective-c core-data


【解决方案1】:

检查表名中的拼写错误。实体(以及表格)以大写字母开头,您的错误为小写字母。我怀疑这是 Todo 的一个简单错字。

【讨论】:

    猜你喜欢
    • 2016-05-24
    • 1970-01-01
    • 1970-01-01
    • 2013-09-16
    • 2020-08-30
    • 1970-01-01
    • 2012-07-22
    • 2020-08-26
    • 1970-01-01
    相关资源
    最近更新 更多