gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 17:42:20 25 4
gpt4 key购买 nike

我在 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/

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