2016-09-23 9 views
0

私のアプリケーションでは、私はCoreDataを使用してユーザーの情報を保存しており、複数のユーザーアカウントが存在する可能性があります。だから私は別のフォルダに複数のCoreDataファイルを作成する必要があります。アプリケーションの現在のCoreDataソースを変更する

ユーザーはログアウトし、ログインページに戻ります。彼らが別のアカウントでログインすると、別のCoreDataソースを作成し、アプリケーションの現在のCoreDataソースを新しいCoreDataソースに変更する必要があります。私はこれらをチェックしているが、概念を理解することができませんでした

CoreData Source

:私はこれを達成するために従うべきどんなロジック

ありがとうございます。

+0

なぜ、別のCoreDataソースを作成しているのですか?あなたのアプリに特定の要件はありますか?それ以外の場合は、複数のユーザーを1つのCoreDataソースで管理することができます。 – CodeChanger

+0

ありがとうございます。別のアカウントを作成する必要があるのは、同じIDを持つオブジェクトがサーバーからの別のアカウントに存在するためです。そしてそれは同じオブジェクトを上書きし、私のフェッチ要求はIDに基づいています。それはまた、私のフェッチロジックを台無しにするでしょう。 –

+0

しかし、それはまた、サーバーが異なるIDを持つ異なるユーザーを持っている可能性はありません私はそう考えていないサーバーの男と確認してくださいサービスからのバグかもしれない? – CodeChanger

答えて

0

ユーザーのログイン時にコアデータストア名をベースにして通常どおりに処理します。

したがって、ユーザーがログアウトすると、NSManagedObjectContext、NSPersistentStoreCoordinator、およびNSPersistentStoreがすべて削除されていることを確認してください。次に、このような新しいストアURLから始めて、新しいユーザーのためにそれらを再初期化します。

NSURL *store = [[self documentsDirectory] URLByAppendingPathComponent:[NSString stringWithFormat:@"%@_account.sqlite", userName]]; 
関連する問題