私たちのアプリでは、ネットワーク/電子メールを介して部分的な 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);
}
}
質問: 上記のコードはデータベースを縮小します。しかし Apple は、Core Data の実装の詳細はいつでも変更される可能性があると述べています。近い将来、この方法を使用しても安全だと思いますか? または、他に良い解決策はありますか?