2013-08-19 108 views
1

我正在設計一個具有「脫機工作」功能的應用程序。激活此功能後,外部數據庫中的數據將與設備上的Core Data數據庫同步。我遇到的問題涉及多個用戶。多核心數據實例

我的應用程序還實現了一個權限系統,一個用戶可以訪問另一個用戶無法讀取的數據。我的問題是,是否可以爲每個登錄的用戶創建一個Core Data模式的實例?這樣,我可以爲每個用戶切換數據庫,並且他們不能與其他用戶的數據交互。

我現在也開放替代建議!

回答

2

是的,克里斯,你能做到這一點,在某些方面,這一個是我在我的應用程序的人做,我建議:

  • 在創建NSPersistentStore,使該文件的名稱取決於用戶名或用戶名。等待從服務器獲取用戶標識以創建它。如果應用程序處於註銷狀態,請不要調用NSPersistentStore,但以防萬一,如果當前用戶標識不存在,則返回nil;

  • 每次用戶登錄時,根據上面的NSPersistentStore啓動NSManagedObjectContext;

  • 每次用戶註銷時,一定要設置爲nil所有的核心數據堆棧(的NSManagedObjectContext,NSPersistentStore和NSManagedObjectModel),因此所有的NSManagedObjects從內存中刪除。

這樣一個用戶不應該能夠訪問他人的數據,但我不確定有關模式。

+0

看起來不錯!我可以在登錄時以編程方式創建NSPersistentStore,還是需要事先知道用戶標識? – chriskievit

+0

檢查第一部分中的編輯。請接受答案和/或upvote,如果它幫助和解決了你的問題。 –