2016-12-19 8 views
1

私は最近iOS向けにリリースしたアプリでエラーを発見しました。私は毎日ではなく毎月の通知を引き起こす誤ったメタデータ変数で何かを保存しています。iOSアプリのアップデート中にコードを実行する方法はありますか?

これは修正するのは簡単ですが、現在保存されているすべてのオブジェクトをループして1から0に変更するだけです。ただし、エラーを修正する更新中にこれを行うことができる方が望ましいです。更新の一環としてコードを実行する方法はありますか?

それ以外の場合は、次に問題が発生したときにループを実行することが問題を解決するための最善の方法だと思います。

私はオンラインで見てきただけで、アプリケーションの起動時にコードをオフにすることを含む解決策を見つけました。したがって、私は何かが欠落しているかどうか疑問に思っています。これは、データの保存方法や再構成方法を再構成する必要がある場合、多くのアプリが必要となるようなものだからです。

+1

これはできません。あなたは、更新後の最初のアプリの起動時にワンタイム修正を行う必要があります。 – Losiowaty

+0

コアデータを使用していますか?バージョン間でDB内の何かを変更した場合は、軽量マイグレーションを試みます。必要なカスタム機能を備えた組み込みマイグレーションを「アシスト」することができます。この時点で行うことができます。 – SeanLintern88

+0

私は実際にNSKeyedArchiverを使用していますので、あなたの答えは理想的です! –

答えて

1

軽量マイグレーションをオーバーライドして変更を加える必要がある場合、唯一の方法はユーザーデフォルトを使用して存在しないvarをチェックし、コードを実行してから再びそれを実行しないようにvar。

func updateDB() { 
    if !UserDefaults.standard.bool(forKey: MyProject.DBFixKey) { 
     // Fix DB 

     UserDefaults.standard.set(true, forKey: MyProject.DBFixKey) 
    } 
} 
関連する問題