背景: WWDC 2011 - 208 Securing iOS application を見てきました。彼らは、NSFileProtection と呼ばれるファイル暗号化でデータを保護する方法について言及しています。言及された自動方法 (@38:00) にはバグがあることを発見しましたが、手動の方法 (@37:00) にはバグがないことを願っています。画像でファイル保護を使用してみましたが、すべて問題ありません。Sqlite しか作成できません。
問題: 3 番目の引数のフラグとしてsqlite3_open_v2
渡してSQLite3 データベース (コア データなし) を作成しようとしました。SQLITE_OPEN_FILEPROTECTION_COMPLETE
戻りませんSQLITE_OK
。
コード:
if (sqlite3_open_v2([databasePath UTF8String], &database, SQLITE_OPEN_FILEPROTECTION_COMPLETE, NULL) == SQLITE_OK){
//everything works
}else{
//failed
}
更新:
borrrden が述べたように、どちらも次のエラー コードが発生しました:
SQLITE_MISUSE
(ライブラリが正しく使用されていません)
更新 2: borrrden の 2 番目のコメントは、両方のフラグの必要性を指摘するのに適切でした。コードに従って動作します:
if (sqlite3_open_v2([databasePath UTF8String], &database, SQLITE_OPEN_CREATE|SQLITE_OPEN_READWRITE|SQLITE_OPEN_FILEPROTECTION_COMPLETE, NULL) == SQLITE_OK)