gpt4 book ai didi

ios - 未设置核心数据反向关系

转载 作者:技术小花猫 更新时间:2023-10-29 10:37:20 26 4
gpt4 key购买 nike

我有两个实体,我称之为 A 和 B。它们在两个方向上都配置了一对多关系,因此 A.myBs 和 B.myAs 都是 NSSet。

这是我的奇怪问题。

当我将 B 添加到我的 A 实体时,我使用 mutableSetValueForKey 这样做:

NSMutableSet *myBSet = [myA mutableSetValueForKey:@"myBs"];
[myBSet addObject:theBtoAdd];

这确实将 theBtoAdd 添加到 A 实体,但没有添加反向关系。核心数据上下文保存不会引发任何错误,但我的 A 对象没有 B 逆集。如果我退出应用程序,即使是部分关系也不会保存。

这是奇怪的部分...如果我只是切换我的代码并做相反的事情(对于我的特定应用程序来说这很难做到是有原因的)- 将 A 添加到 B 而不是像这样将 B 添加到 A:

NSMutableSet *myASet = [myB mutableSetValueForKey:@"myAs"];
[myASet addObject:theAtoAdd];

它工作得很好。顺便说一下,我有很多其他有效的对多关系。只有这个没有。

其他一些事情:1) 我的核心数据对象模型看起来不错,但这是我在 Xcode 4 下添加的第一个新实体2) 我已经检查、重新检查并盲目地查看我的自定义 NSManagedObjects,但它们看起来很好——声明为动态、NSSet、没有冲突的 setter/getter 等。

任何帮助或调试建议将不胜感激。谢谢!

最佳答案

我刚遇到同样的问题,所以才看到这个问题。也许我的解决方案可以帮助一些处于相同情况的人。

对我来说,答案是在 NSManagedObject 子类中我重写了:

- (void)willChangeValueForKey:(NSString *)inKey withSetMutation:(NSKeyValueSetMutationKind)inMutationKind usingObjects:(NSSet *)inObjects

- (void)didChangeValueForKey:(NSString *)inKey withSetMutation:(NSKeyValueSetMutationKind)inMutationKind usingObjects:(NSSet *)inObjects

这会阻止将正确的通知发送到处理自动反向关系的父类 (NSManagedObject)。

关于ios - 未设置核心数据反向关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6191160/

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