2016-08-18 63 views
0

我正在开发一个使用Core Data和SQLite的应用程序。 SQLite数据库用于检索数据。我使用数据填充SQLite数据库,然后使用轻量级迁移为我的实体添加一些新属性。应用轻量级迁移后,将ios-add column添加到sqlite?

现在我已经用sqlitebrowser更改了SQLite文件,并向它添加了新列(用于已添加到数据模型的新属性)并填充了一些数据列。但是当我获取数据时,这个新列没有显示任何内容。

我在运行项目时没有错误;但我怎样才能改变SQLite文件?我必须手动更改SQLite文件吗?

我的应用程序在轻量级迁移之前完美工作。我的问题看起来像这样:link但我做了正确的轻量级迁移。我的应用程序像苹果示例代码中的iPhoneCoreDataRecipes一样。我在我的app.how中使用预填充的sqlite数据库我可以更改sqlite数据库?我知道每个实体是模型是表是sqlite数据库和每个属性是sqlite中的表的列?我手动添加新的列到sqlite文件(ZNOTE)并填充它。但是当我从sqlite中获取时什么也没有显示。

+0

嗨Mehdi - 你能否给你的问题增加一点点细节,说明它究竟会出错?例如,你如何试图获取数据 - 你是如何用sqlitebrowser确认你已经成功添加新列的? –

+0

好的。感谢您在轻量级迁移之前帮助Vince.my应用程序完美工作。我的问题如下所示:http://stackoverflow.com/questions/29918219/ios-application-coredata-with-persistentstore-as-static-sqlite-数据迁移 但我做了正确的轻量级迁移。 我的应用程序像iPhoneCoreDataRecipes苹果示例代码。我在我的app.how中使用预填充的sqlite数据库我可以更改sqlite数据库? 我知道每个实体是模型是表是sqlite数据库和每个属性是在sqlite列? 我手动添加新列到sqlite文件(ZNOTE)。 –

+0

嗨Mehdi - 这是很好,你有更多的信息来澄清你的问题。但如果您编辑问题以包含新信息,那么最好;这样,任何新读者都将能够理解你在问什么,而不必阅读下面的评论。 –

回答

0

如果您使用的是核心数据,您不能不能通过编辑SQLite文件修改SQLite模式,并期望它工作。您需要必须通过使用Xcode中的核心数据模型编辑器来添加新属性。当应用程序运行时,所有的Core Data知道您的SQLite文件是模型文件告诉它的。如果您修改了架构而不是模型文件,Core Data将不知道您的更改,并可能破坏数据或使应用程序崩溃。

核心数据不是SQLite的包装;它使用了一个非常不同的API,而SQLite是一个你应该大多不关心的实现细节。

如果您不熟悉如何更改Core Data模型,请查看Apple的Core Data Model Versioning and Data Migration

+0

ok tom.i get.point.but发生在我目前的sqlite文件。我应该再次填充它。它包含许多表格,1000行,图像文件和.....导出和导入不能正常工作? –