我在NSManagedObjectContext
的{{1}} CoreData方法遇到了问题。首先,我创建了一个新的模型版本,以添加save
的新字段。我需要在表格视图中显示此字段。由于旧模型版本不包含此字段,因此数据库中的初始值为Integer 16
。在NULL
中,我从tableview:cellForRowAtIndexPath:
提取的数据源中获取NSManagedObject
。我首先检查那个字段值。如果是NSFetchedResultController
,我将创建一个,并对NULL
执行setValue:forKey:
以更新记录,并将上下文保存到数据库。但是,当我打开NSManagedObject
文件时,不会保存该值。所以我想知道为什么价值没有保存。
顺便说一句,我正在进行iOS开发。
谢谢。
答案 0 :(得分:0)
您的描述不足以完全理解问题。请分享一些示例代码,特别是您如何设置核心数据。
应用程序包中是否有.sqlite文件?如果是,请注意它是只读的。
如果要更新现有数据库,则tableView:cellForRowAtIndexPath:
不适合这样做。您应该在应用程序启动后执行此操作(仅一次)。
P.S。我假设你对核心数据有基本的了解(NSManagedObjectContext和NSFetchedResultsController)。