在退出和检索之前保存最后一个NSManagedObject - 核心数据

时间:2012-02-12 14:45:52

标签: iphone objective-c ios core-data nsmanagedobject

我使用nsfetchedresultscontroller维护实体“产品”。 但我设置了谓词"forUser==%@", currentUser",用户是另一个实体。

虽然我可以在运行时加载currentUser,但是我想在nsuserdefaults中保存“CurrentUser”,在SQL中我会保存那个用户的primaryKey, 在appDidFinishLaunching我可以抓住它并获得实体。

我不确定当涉及到NSUserDefaults中的实体时我应该保存到底是什么。

我不想添加

的额外属性
  

“上次访问”

对于用户来说,因为每次只有一个当前用户,并且只对同一个有点ID有意义。我可以保存lastName或firstName,但是正在考虑更好的方法,比如某种有问题的integerID。

保存NSManagedObjectID URI也是一个选项,但这会改变任何迁移或核心数据图表更改,并在更新时中断应用程序。

请帮我理解核心数据。

2 个答案:

答案 0 :(得分:0)

你已经回答了自己的问题。你说你想要一种唯一识别用户的方法。

如果用户没有唯一标识属性,那么您只有NSManagedObjectID URI。但这可能会在迁移期间发生变化。

因此,您需要添加唯一标识用户的属性,或者至少唯一标识最后一个用户。

答案 1 :(得分:-1)

根据您提到的用例,您必须添加一个id。你想把它存储在NsUserDefaults吗?