cocoa - 修改通过核心数据映射的 sqlite 数据库会引发错误 : uncaught exception of class 'NSCFString'

标签 cocoa core-data ios4 sqlite

我有一个 iPhone 应用程序,它有一个 sqlite 数据库,映射到核心数据。应用程序中的所有数据操作都是通过 Coredata 进行的。

在一个表上我想添加一个字符串属性。我做了两件事,都出现了类似的崩溃:

  1. 我尝试使用 Mesasql 来更改结构。我轻松添加了 Varchar 列。但它崩溃了。

  2. 在另一次尝试中,在恢复映射的 SQLlite 数据库后,我尝试向核心数据中的实体添加属性,但它崩溃了。

这是我得到的错误: * 由于“NSCFString”类未捕获异常而终止应用程序 抛出“NSCFString”实例后调用终止

那么,如何在不破坏应用程序的情况下更改映射到核心数据的 sqlite 表的结构?我是否忘记进行提交或类似的事情?

请帮忙

最佳答案

每次修改实体时,您都必须删除 sqlite 存储。如果您的应用程序已经发布,则替代方案是 migrate your data 。这个SO answer提供了如何执行此操作的简单说明。

关于cocoa - 修改通过核心数据映射的 sqlite 数据库会引发错误 : uncaught exception of class 'NSCFString' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5286761/

相关文章:

ios - CoreData 获取返回 nil

ios4 - alloc、copy 和 new 有什么区别?

objective-c - 我如何获得 cocoa 中给定字体系列支持的字体

objective-c - cocoa - 在 NSView 中绘制图像

macos - 在 OSX 10.8 中,如何限制 subview 与其父 View 大小相同

ios - 核心数据 : Parent Entity Vs Relationships

cocoa - 将 NSTimer 链接到 NSProgressIndicator

ios - iOS 核心数据中的多个上下文

ios - 如何将配置文件上传到 iPhone

iphone - 在 iOS 5 中自定义导航栏