CoreData保存在`tableview:cellForRowAtIndexPath:`方法中不起作用?

时间:2014-11-06 12:07:09

标签: ios objective-c sqlite uitableview core-data

我在NSManagedObjectContext的{​​{1}} CoreData方法遇到了问题。首先,我创建了一个新的模型版本,以添加save的新字段。我需要在表格视图中显示此字段。由于旧模型版本不包含此字段,因此数据库中的初始值为Integer 16。在NULL中,我从tableview:cellForRowAtIndexPath:提取的数据源中获取NSManagedObject。我首先检查那个字段值。如果是NSFetchedResultController,我将创建一个,并对NULL执行setValue:forKey:以更新记录,并将上下文保存到数据库。但是,当我打开NSManagedObject文件时,不会保存该值。所以我想知道为什么价值没有保存。

顺便说一句,我正在进行iOS开发。

谢谢。

1 个答案:

答案 0 :(得分:0)

您的描述不足以完全理解问题。请分享一些示例代码,特别是您如何设置核心数据。

  1. 应用程序包中是否有.sqlite文件?如果是,请注意它是只读的。

  2. 如果要更新现有数据库,则tableView:cellForRowAtIndexPath:不适合这样做。您应该在应用程序启动后执行此操作(仅一次)。

  3. P.S。我假设你对核心数据有基本的了解(NSManagedObjectContext和NSFetchedResultsController)。