objective-c - 核心数据委托(delegate)保存模式

标签 objective-c ios core-data

我在 iOS 中使用 CoreData。 我有一个模态 AddViewController,以 RootViewController 作为委托(delegate)。

我应该在根 Controller 中还是在实际模态 Controller 本身中保存托管对象上下文?

我看到了将数据传回 rootViewController 的示例,但看不到这将如何处理数据验证失败或需要托管对象上下文的更复杂场景。

// AddViewController.m

- (void)save
{
  [[self delegate] controller:(id)controller didFinishWithSave:(BOOL)save withName(NSString *)name;
}

// RootViewController.m

- (void)controller:(id)controller didFinishWithSave:(BOOL)save
{
  if (save)
  {
    // save context
  }
  [self dismissModalViewControllerAnimated:YES];
}

目前我正在使用委托(delegate)协议(protocol)解除模态。 关于最佳实践的任何建议? 谢谢

最佳答案

我知道这有点晚了,但对于遇到此问题的其他人,我会在 Levend 的回答中添加更多内容。

是的,您应该有一个单独的管理器类来处理操作(可能是类本身)。

我认为,如果您的模式需要处理验证,那么在调用委托(delegate)之前,它会验证对象。如果有错误,您可以立即处理。如果它通过了验证,那么您可以将有效对象传递给委托(delegate)。因此,委托(delegate)可以假设传递给它的任何对象都是有效的。

至于你应该把它保存在哪个类,我认为那只是一个偏好的事情。但我建议您在核心数据模型本身中有一个保存方法。

我最近遇到的是 mogenerator这应该有助于管理 CoreData 类。我还没听腻,但听起来不错。

关于objective-c - 核心数据委托(delegate)保存模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7649284/

相关文章:

iphone - 在 UILabel 中显示重音符号和其他 UTF-8 字符

c++ - 类转储创建的奇怪 CDStructures.h

ios - 为当前用户更新解析对象而不是创建重复条目

cocoa 绑定(bind) : NSObjectController not KVC-compliant for the representedObject property

ios - 如何从 iOS 上的核心数据可转换字段中获取 RTF 内容?

iphone - 内存高效集合类

ios - 检测 UIImageView 与任何对象的碰撞

ios - Apple 推送通知服务设备 token

ios - 核心数据对象未正确更新或发布定义日期组件

ios - 核心数据一对多关系