【发布时间】:2012-02-12 14:45:51
【问题描述】:
我使用nsfetchedresultscontroller 来维护实体“产品”。
但是我设置了一个谓词"forUser==%@", currentUser",用户是另一个实体。
虽然我可以在运行时加载 currentUser,但我想将“CurrentUser”保存在 nsuserdefaults 中的某处,在 SQL 中我会保存该用户的 primaryKey, 在 appDidFinishLaunching 上,我可以抓住它并获取实体。
当涉及到 NSUserDefaults 中的实体时,我不确定我应该保存什么。
我不想添加额外的属性
“上次访问”
对于用户来说,因为一次只有一个当前用户,所以只需要相同的某种 ID 是有意义的。我可以保存姓氏或名字,但正在考虑一种更好的方法,比如某种整数 ID。
保存NSManagedObjectID URI 也是一种选择,但如果发生任何迁移或核心数据图更改,这将改变,并在更新时破坏应用程序。
请帮助我在核心数据中理解这一点。
【问题讨论】:
-
那么 User 实体有唯一的属性吗?说身份证?然后您可以将该 id 保存在 NSUSerDefaults 中。
-
我没有添加任何内容,认为它全部由 Coredata 模型处理。可能不需要 Integer primaryKey 因为核心数据为 is,但不使其可用?到目前为止,用户还没有 ID 属性。我在想另一种方法吗?...除了添加一个新的 ID 之类的属性?
-
您必须根据您提到的用例添加一个 id。您想将其存储在 NsUserDefaults 中
-
你的权利@mbh 这似乎是唯一的出路。我决定使用 UUID,以防用户是唯一的并在 iCloud 上共享,如果您将其写为答案,我会接受您的答案..
-
哈哈是真的。我现在确实将其发布为答案。但我猜为时已晚!
标签: iphone objective-c ios core-data nsmanagedobject