多个核心数据实例

时间:2013-08-19 11:31:54

标签: ios objective-c ipad core-data

我正在设计一款具有“脱机工作”功能的应用。激活此功能后,外部数据库中的数据将与设备上的Core Data数据库同步。我遇到的问题涉及多个用户。

我的应用程序还实现了一个权限系统,在该权限系统中,一个用户可以访问另一个用户无法读取的数据。我的问题是,是否可以为每个登录的用户创建我的Core Data架构的实例?这样,我就可以为每个用户切换数据库,并且无法与其他用户的数据进行交互。

我当然也愿意接受其他建议!

1 个答案:

答案 0 :(得分:2)

是的,Chris,你可以在某些方面做到这一点,这是我在我的一个应用程序中所做的,我建议:

  • 创建NSPersistentStore时,请确保文件名取决于用户ID或用户名。等待从服务器获取用户ID以创建它。如果应用程序处于注销状态,请不要调用NSPersistentStore,但为了以防万一,如果当前用户ID不存在则返回nil;

  • 每次用户登录时,都会根据上面的NSPersistentStore启动NSManagedObjectContext;

  • 每次用户注销时,请务必将nil设置为所有Core Data堆栈(NSManagedObjectContext,NSPersistentStore和NSManagedObjectModel),以便从内存中删除所有NSManagedObjects。

    < / LI>

这样一个用户就无法访问其他人的数据,但我不确定模式。