在我们的应用程序中,我们正在实现通过网络/电子邮件共享部分核心数据SQLite数据库。为了保持较小的文件大小,我实现了下面的方法来缩小Core Data数据库。在核心数据上使用Sqlite3 VACUUM命令SQLite持久存储
- (void) shrinkDB
{
sqlite3 * database;
NSString * string = [shareStoreURL path];
const char * filename = [string cStringUsingEncoding:[NSString defaultCStringEncoding]];
char *errMsg;
if (sqlite3_open(filename, &database) == SQLITE_OK)
{
NSLog(@"Shrinking...");
if (sqlite3_exec(database, "VACUUM;", NULL, NULL, &errMsg) != SQLITE_OK)
{
NSLog(@"Failed execute VACUUM");
}
sqlite3_close(database);
}
}
问题:上面的代码确实收缩了数据库。但是苹果表示,Core Data的实施细节随时都可能发生变化。你认为我可以在可预见的未来使用这种方法吗?或者还有其他更好的解决方案吗?
可能重复[如何真空核心数据SQLite数据库?](http://stackoverflow.com/questions/1532172/how-to-vacuum-a-core-data-sqlite-db) – OrangeDog 2016-09-19 15:57:38