0

iOS アプリケーションで Core Data API を使用しています。また、commoncrypto ライブラリ (CCCrypt()) を使用して、アプリケーションの状態 (バックグラウンド/フォアグラウンド) が変化したときにドキュメント フォルダーにあるデータベース ファイル (.sqlite ファイル) を暗号化/復号化しています。

私が直面している問題は...アプリケーションがバックグラウンド状態からユーザーによって手動で強制終了されると、データベース内のレコードの一部が失われ、この問題に一貫性がありません。

sqlite ファイルの内容を NSData に変換し、CCCrypt() 関数への入力として使用して暗号化/復号化するだけで、暗号化操作で入力データを復号化していません。

誰か助けてください.....データ損失の理由は何ですか? それも、アプリケーションがバックグラウンド状態から手動で強制終了された場合のみです..... 暗号化と復号化の両方の操作で、CCCrypt 関数は kCCSuccess としてステータスを返します...

CCCrypt 操作の前に、入力データ (生のバイト) をデコードする必要はありますか?

4

1 に答える 1

0

おそらく、データが強制終了される前に、ライフ サイクル メソッドを使用してデータを保存する必要があります。applicationWillTerminate にデータを保存してみてください。[ここにリンクの説明を入力][1] の詳細については、このディスカッションを参照してください。

[1]: applicationWillTerminate はいつ呼び出され、「強制終了する前にデータを保存」しない場合に呼び出されます

于 2013-10-04T06:13:30.567 に答える