加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

objective-c – 应用程序状态何时属于Core Data而不是NSUserDefa

发布时间:2020-12-16 04:59:48 所属栏目:百科 来源:网络整理
导读:我正在尝试确定某个应用程序状态,特别是列表中的选定项目是否应存储在Core Data或NSUserDefaults中. 通常我认为应用程序首选项和状态应该保留在NSUserDefaults中,模型级数据应该保留在其他地方,比如Core Data.到目前为止,我的模型是: 数据是否应该存储?如
我正在尝试确定某个应用程序状态,特别是列表中的选定项目是否应存储在Core Data或NSUserDefaults中.

通常我认为应用程序首选项和状态应该保留在NSUserDefaults中,模型级数据应该保留在其他地方,比如Core Data.到目前为止,我的模型是:

>数据是否应该存储?如果用户不合理地期望它,则抛出它(例如,光标位置不保存在TextEdit中)
> NSUserDefaults:

>如果应用程序是多文档,则该设置将适用于所有文档
>可以想象数据将在首选项中配置
>将模型外部的数据用于测试(使用一个模型存储交换多个默认值)

>模型级

>数据显然属于模型级对象的属性
>数据足够大,将其存储在NSUserDefaults中会导致性能问题
>用户重新创建数据将很困难或耗时(他们肯定会考虑丢失此信息“数据丢失”)

我计划在Core Data中存储一些实体的排序顺序.如果没有此信息(即“sortIndex”或“order”属性),则必须使用来自用户默认值的数据来扩充每个实体实例.

但是,在模型中存储状态似乎是一个滑坡.如果我存储排序顺序,那么它似乎也适合存储选择,因为它们都是列表的状态.我的用例的选择数据实际上可能非常大.具体地说,一个列表中的图标取决于每个子列表中的选择.

有没有人对NSUserDefaults与数据模型有一个强硬路线?

解决方法

你没有提到这是一个基于文档的应用程序(比如说,TextEdit)还是??基于库的应用程序(比如说,AddressBook).

这可能有助于您决定此类信息的去向:假设基于文档的应用程序.假设它的文档被置于版本控制之下(这在使用Core Data的XML数据存储类型时实际上是可行的).打开应用程序,更改文档的排序顺序.这会弄脏文件吗?这种变化值得办理登机手续吗?这个更改对此存储库的其他用户是否有价值?

通常,排序顺序不足以保证基于文档的存储(在界面生成器中使用NSTableView的自动保存名称).但您的应用程序可能会优先考虑排序(听起来像它).

所以,没有严格的规则.但我认为将文档置于版本控制之下,可能与其他人共享,这提供了一个良好的知识框架,可以为任何一方提供案例.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读