• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - MagicalRecord 创建不会保存新的数据对象。

[复制链接]
菜鸟教程小白 发表于 2022-12-12 11:48:53 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我有这个代码:

HLMReferenceData *referenceDataObj = [HLMReferenceData createEntity];
[MagicalRecord saveWithBlock:^(NSManagedObjectContext *localContext){
    HLMReferenceData *localReferenceData = [referenceDataObj inContext:localContext];
    // Setup localReferenceData here ....
}
                  completion:NULL];

据我所知,这与网上有关如何使用 MagicalRecord 创建新记录的示例完全一致。但是它不起作用。我在日志中得到了这个:

... +[MagicalRecord(ErrorHandling) defaultErrorHandler:](0x3abdc4) Error Message: The operation couldn’t be completed. (Cocoa error 133000.)
... +[MagicalRecord(ErrorHandling) defaultErrorHandler:](0x3abdc4) Error Domain: NSCocoaErrorDomain
... +[MagicalRecord(ErrorHandling) defaultErrorHandler:](0x3abdc4) Recovery Suggestion: (null)
... -[NSManagedObjectContext(MagicalSaves) MR_saveWithOptions:completion:](0x954b680) NO CHANGES IN ** UNNAMED ** CONTEXT - NOT SAVING

我在 Magical Record 的代码库中进行了挖掘,当调用 inContext: 方法时会发生错误。它返回一个 nil 对象作为结果。我在网上搜索过,但无法弄清楚出了什么问题。 HLMReferenceData 类映射到数据模型中的单个表,没有到其他表的链接。类中的所有字段都会被填充。

我很茫然。



Best Answer-推荐答案


inContext: 返回 nil,因为您的对象是在外部上下文中创建/插入的,并且从未保存过。因此它还不能在 localContext 中访问。 (更具体地说,inContext: 将尝试使用临时 objectID 查找对象,但它不会找到。)您应该在保存 block 中创建/插入对象,如下所示:

[MagicalRecord saveWithBlock:^(NSManagedObjectContext *localContext){
    HLMReferenceData *referenceDataObj = [HLMReferenceData createEntityInContext:localContext];
    referenceDataObj.name = @"foo";
    // Continue setting up referenceDataObj here ....
} completion: NULL];

您可以在 Magical Record 的 github 文档的“保存”下看到一个非常相似的示例。请参阅“MagicalRecord 2.3.0 中保存的更改”小节

https://github.com/magicalpanda/MagicalRecord/blob/develop/Docs/Saving.md

关于ios - MagicalRecord 创建不会保存新的数据对象。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25738625/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap