在我们的应用程序中,我们正在通过网络/电子邮件实现部分 Core Data SQLite 数据库的共享。为了保持文件较小,我实现了以下方法来缩小 Core Data 数据库。
- (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 的实施细节随时可能发生变化。你认为我在可预见的未来使用这种方法会安全吗?或者有没有其他更好的解决方案?