2017-05-16 3 views
-7

Webサービスを呼び出して、アプリケーションの開始時にデータをコアデータにあらかじめロードする必要があります。私は、アプリケーションが起動するたびにデータベースを更新したくありません。誰でもこのユースケースをガイドできますか?アプリケーションを起動するときにメソッドが複数回呼び出されるように制限する

+1

最も明白な解決策は、coredataデータベースが存在する場合は、作成する必要はありません:) –

答えて

1

あなたはUserDefaultsでそれを行うことができます。

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]? = nil) -> Bool { 
     if UserDefaults.standard.object(forKey: "firstTime") == nil { 
     request() 
     UserDefaults.standard.set(true, forKey: "firstTime") 
    } 
     return true 
    } 

またはあなたのcoreDataが要求をしない場合は任意の項目を持っているかどうかをチェックできます。

0

リモートコンテンツのバージョンまたはそのハッシュをUserDefaultsに保存できます。データが変更された場合は、更新のスケジュールを設定します。コンテンツバージョンチェック(HEAD)とコンテンツフェッチリクエスト(GET)を分離します。リモートコンテンツのサイズが大きい場合は、アプリにバンドルすることを強くお勧めします。

関連する問題