0

我对核心数据有一个非常令人沮丧的问题。在应用程序中,我正在设计一个视图,用户可以在其中搜索他们的作家、作曲家等的歌曲。我将这些数据存储在一个NSManagedObject子类中。由于应用程序中的数据没有改变,我在另一个小程序中创建了数据库,然后将.sqlite文件移动到应用程序的捆绑包中。

当我Person从数据库中获取所有对象时,会发生一些奇怪的事情。所有的 Person 对象都会显示出来,但是name对象中的某些字段以某种方式设置为nil. 只有人的角色是“作曲家”的对象似乎有这个问题。

造成这么大问题的原因是我已经验证了这些实体的名称在 sqlite 文件中。我可以在导入程序(创建数据库的程序)结束时打印所有对象并获得正确的信息。我还认为,当我将文件复制过来时,文件系统可能正在对文件执行某些操作,但是我可以从命令行打开 sqlite 文件并在那里手动获取作曲家的姓名。

有没有人遇到过类似的问题?

4

1 回答 1

0

在对此感到沮丧几个小时之后,答案非常简单。几天前,有些数据在传输过程中被损坏,损坏的数据库被放入了应用程序包中。如果应用程序在每次运行时还没有缓存数据库,则应用程序会对其进行缓存。所以一直以来我一直试图让它工作,我可能做对了,捆绑中的数据库没有被复制,因为那里已经有一个(坏的)数据库。

该应用程序只需要卸载并重新安装。

于 2013-06-12T12:39:12.930 回答