gpt4 book ai didi

ios - 核心数据一对多关系 : unrecognized selector sent to instance

转载 作者:行者123 更新时间:2023-11-29 10:50:35 25 4
gpt4 key购买 nike

我有两个类或对象:UserMedicine。这是我的 User 类:

@interface User : NSManagedObject

@property (nonatomic, retain) NSString * name;
@property (nonatomic, retain) NSSet *medicine;
@end

@interface User (CoreDataGeneratedAccessors)

- (void)addMedicineObject:(Medicine *)value;
- (void)removeMedicineObject:(Medicine *)value;
- (void)addMedicine:(NSSet *)values;
- (void)removeMedicine:(NSSet *)values;
@end

然后是 Medicine

@interface Medicine : NSManagedObject

@property (nonatomic, retain) NSString * medName;
@property (nonatomic, retain) NSString * medType;
@property (nonatomic, retain) Dose *dose;
@property (nonatomic, retain) User *user;

@end

因为我的界面清楚地表明用户可能有多种药物。 (我来自数据库背景,这就是我这样解释它的原因)。

当我在 User 中添加新对象时,这很容易完成,但是当我尝试为现有用户对象添加新的 Medicine 时,我觉得我的 Xcode 有当时很想射杀我(反之亦然)。

下面是描述我正在做的事情的代码:

Medicine *object = [[self fetchedResultsController] objectAtIndexPath:indexPath];
User *user = [NSEntityDescription insertNewObjectForEntityForName:@"User" inManagedObjectContext:self.managedObjectContext];
if(![self checkUser])
{
object.user = user;
[user setName:self.userName];
NSLog(@"%@ %@",object, user);
self.detailViewController.detailItem = object;
}
else
{
Medicine *medicine = [NSEntityDescription insertNewObjectForEntityForName:@"Medicine" inManagedObjectContext:self.managedObjectContext];
user = [self getUser:self.userName];
medicine.medName = object.medName;
medicine.medType = object.medType;
[medicine setUser:user];
self.detailViewController.detailItem = medicine;
}

我有一个简单的逻辑:如果用户在文本字段中输入的名称已经存在于数据库中,则返回 User 对象。然后只需为同一 User 添加另一条 Medicine 记录。否则也添加新的 UserMedicine 对象。

但我在以下位置遇到错误:

[medicine setUser:user];

我也试过这个:(因为我在另一个像我这样的问题中得到它)

[user addMedicineObject:medicine];

现在我认为我必须覆盖 addMedicineObject 方法或其他方法。

哦,我忘记了错误。我得到这个错误:(真正的恶棍)

[__NSArrayM managedObjectContext]: unrecognized selector sent to instance 0x8136bf0

现在有什么建议吗?

最佳答案

这是因为你试图改变 NSSet 对象。您需要在编辑之前创建一个可变副本。

关于ios - 核心数据一对多关系 : unrecognized selector sent to instance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20634856/

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