我在最新的iPhone应用程序中使用CoreData.我发现它一开始很复杂但我想这是你需要在iPhone应用程序中存储对象时的最佳选择(http://inessential.com/2010/02/26/on_switching_away_from_core_data).
在iPhone应用程序中使用CoreData时是否有最佳实践?例如,我不希望我的所有控制器都处理您想要发出请求时所需的NSManagedObjectContext.您是否仅为CoreData请求定义了一个类?
我通常创建一个专用对象来管理我的核心数据堆栈以及相关的对象和行为.这很有用,因为有很多带有Core Data的样板,所以我可以创建一个通用的基类管理器类,然后为每个应用程序使用一个子类.我通常称它为AppNameDataModel.
我更喜欢在DataModel对象中隐藏托管对象上下文.这会强制应用程序中的其他对象请求DataModel对象访问Core Data堆栈,从而提供良好的封装和安全性.
通常,我在DataModel类中创建方法以返回实体的提取,例如
-(NSFetchRequest *) entityNameFetch;
Run Code Online (Sandbox Code Playgroud)
...然后performFetch在DataModel中有一个方法.在使用中,控制器要求获取实体,配置获取,然后要求DataModel执行获取并返回结果.您可以编写返回fetch的方法的生成脚本,并且perform fetch也是样板.这样可以节省大量时间,特别是在原型设计时.
对DataModel实例本身的引用可以从控制器传递到控制器,但我认为这是单例模式的有效使用,因此我经常使DataModel成为单例,并在UIViewController上为属性访问它提供一个类别.这意味着我添加到项目的任何视图控制器都可以自动访问DataModel.
这种模式可以很好地封装和模块化.它可以轻松添加新视图或在项目之间共享数据模型.最初设置需要一些工作,但是一旦你有了基类,未来的使用就会大量增加.
| 归档时间: |
|
| 查看次数: |
2568 次 |
| 最近记录: |