gpt4 book ai didi

iphone - 核心数据最佳实践

转载 作者:行者123 更新时间:2023-12-03 18:39:06 25 4
gpt4 key购买 nike

我在最新的 iPhone 应用程序中使用 CoreData。我一开始觉得它很复杂,但我想当您需要在 iPhone 应用程序中存储对象时这是最佳选择 ( http://inessential.com/2010/02/26/on_switching_away_from_core_data )。

在 iPhone 应用程序中使用 CoreData 时是否有最佳实践?例如,我不希望我的所有 Controller 都处理您在发出请求时需要的 NSManagedObjectContext。您是否仅为 CoreData 请求定义一个类?

最佳答案

我通常创建一个专用对象来管理我的核心数据堆栈以及相关对象和行为。这很有用,因为有很多带有核心数据的样板,所以我可以创建一个通用的基本管理器类,然后为每个应用程序使用一个子类。我通常称之为AppNameDataModel。

我更喜欢将托管对象上下文隐藏在 DataModel 对象内。这迫使应用程序中的其他对象请求 DataModel 对象访问核心数据堆栈,从而提供良好的封装和安全性。

通常,我在 DataModel 类中创建方法来返回实体的提取,例如

-(NSFetchRequest *) entityNameFetch;

...然后在 DataModel 中有一个 performFetch 方法。在使用中, Controller 请求获取实体,配置获取,然后要求 DataModel 执行获取并返回结果。您可以编写脚本来生成返回获取的方法,并且执行获取也是样板。这一切都节省了大量时间,尤其是在原型(prototype)设计时。

对 DataModel 实例本身的引用可以从一个 Controller 传递到另一个 Controller ,但我认为这是单例模式的有效使用,因此我经常将 DataModel 设为单例,并在 UIViewController 上提供一个类别以供属性访问它。这意味着我添加到项目中的任何 View Controller 都会自动访问 DataModel。

这种模式使所有内容都得到很好的封装和模块化。它可以轻松添加新 View 或在项目之间共享数据模型。最初需要做一些工作来设置,但是一旦有了基类, future 的使用就会大大加快。

关于iphone - 核心数据最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3335636/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com