gpt4 book ai didi

ios - 向核心数据添加记录时出现 NSSet 错误(一对多关系)

转载 作者:可可西里 更新时间:2023-11-01 04:44:27 27 4
gpt4 key购买 nike

好吧,我对 iOS 还是很陌生,对一些事情感到困惑。首先,这是我的实体...... E.R.D

我在数据方面已经拥有的是一个水果(苹果)和一个资源(树)。它们都保存在数据库中。

接下来我想添加一个橙子,但与“树”有关系。所以这就是我正在使用的:

    Fruit *fruit = (Fruit *)[NSEntityDescription insertNewObjectForEntityForName:@"Fruit" inManagedObjectContext:managedObjectContext];
fruit.fruitName = @"Orange";
NSSet *test = [NSSet setWithObject:fruit];
[_source addSourceFruit:test];

NSLog(@"4");

fruit.fruitSource = _source;

(_source 是“树”,我在源实体上对“树”执行了一个获取请求到一个数组中,然后获取 objectAtIndex:0 (Tree) 并将其分配给指向源实体的点。

   data = [managedObjectContext executeFetchRequest:request error:&error];


Source *_source = [data objectAtIndex:0];

和访问器方法:

- (void)addSourceFruitObject:(Fruit *)value;
- (void)removeSourceFruitObject:(Fruit *)value;
- (void)addSourceFruit:(NSSet *)values;
- (void)removeSourceFruit:(NSSet *)values;

我找到了与 bundle 相关的答案,但我对它们不是很确定。我读过这个'https://developer.apple.com/library/mac/#documentation/CoreFOundation/Conceptual/CFBundles/AboutBundles/AboutBundles.html ' 和 ' https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreData/Articles/cdAccessorMethods.html ' 但我似乎并没有很好地掌握它。

编辑:错误是

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSSet intersectsSet:]: set argument is not an NSSet'
*** First throw call stack:

最佳答案

我相信您通过替换 sourceFruit 集混淆了 Core Data。核心数据保持反向关系。这意味着您只需设置 fruit.fruitSource = _source; 即可了解如何连接对象。您可以使用 [_source addSourceFruitObject:fruit]; 代替,但这对我来说似乎不太简洁。

(另外:避免对局部变量使用 _name 风格的命名是个好主意。对于支持属性的实例变量使用这种形式已经成为一种标准。)

关于ios - 向核心数据添加记录时出现 NSSet 错误(一对多关系),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13799049/

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