核心数据一对多关系:无法识别的选择器发送到实例

iBug

我有两个类或对象: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;
}

我有一个简单的逻辑:如果用户在文本字段中输入的名称已经存在于DB中,则返回该User对象。然后只需添加Medicine相同的另一条记录User其他明智的做法是添加newUser和一个Medicine对象。

但我在以下地方遇到错误:

[medicine setUser:user];

我也尝试过这个:(因为我在另一个问题中遇到了这个问题)

[user addMedicineObject:medicine];

现在,我认为我必须重写addMedicineObject方法或其他方法。

哦,我忘了错误。我收到此错误:(真正的反派)

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

现在有什么建议吗?

阿普尔夫

这是因为您试图突变NSSet对象。您需要先创建可变副本,然后才能对其进行编辑。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

更新核心数据模型后出错-无法识别的选择器发送到实例

来自分类Dev

核心数据获取[_NSObjectID_48_1 userName]:无法识别的选择器已发送到实例

来自分类Dev

标签栏>拆分> NavigationController结果显示在[MasterViewController topViewController]中:无法识别的选择器发送到实例:核心数据

来自分类Dev

存档数据时将无法识别的选择器发送到实例(NSCoding)

来自分类Dev

Swift选择器-无法识别的选择器已发送到实例

来自分类Dev

无法识别的选择器发送到实例日期选择器-迅速

来自分类Dev

CoreData设置关系给出错误'-[WeatherObservation count]:无法识别的选择器已发送到实例

来自分类Dev

无法识别的选择器已发送到FBSDKProfile类别的实例

来自分类Dev

无法解决“无法识别的选择器已发送到实例”错误

来自分类Dev

无法解决错误“ [__NSCFBoolean长度]:无法识别的选择器已发送到实例”

来自分类Dev

核心数据异常:initWithCoder:]:无法识别的选择器已发送

来自分类Dev

将@dynamic与Core Data一起使用时,无法识别的选择器发送到实例

来自分类Dev

当我从另一个类调用时,无法识别的选择器发送到实例

来自分类Dev

Xcode,无法识别的选择器发送到实例-但是在哪一行?

来自分类Dev

错误-线程1:信号SIGABRT(无法识别的选择器发送到实例)

来自分类Dev

-[UIView setAdUnitID1:]:无法识别的选择器已发送到实例

来自分类Dev

iCarousel-numberOfItemsInCarousel:无法识别的选择器已发送到实例

来自分类Dev

无法识别的选择器已发送到实例。NSInvalidArgumentExpection

来自分类Dev

Swift 3:无法识别的选择器发送到实例Xcode 8

来自分类Dev

iOS的FBSDK:“无法识别的选择器已发送到实例”

来自分类Dev

iOS无法识别的选择器已发送到Swift中的实例

来自分类Dev

[CBAutocompleteTextFieldField完成:]:无法识别的选择器已发送到实例?

来自分类Dev

“无法识别的选择器已发送到实例”-添加搜索栏时出错

来自分类Dev

UITapGestureRecognizer无法识别的选择器已发送到实例

来自分类Dev

NSNotification无法识别的选择器已发送到Swift中的实例

来自分类Dev

NSManagedObject setter给我[MyObject setName:]:无法识别的选择器发送到实例

来自分类Dev

[__NSCFNumber长度]:无法识别的选择器已发送到实例UITableView

来自分类Dev

[__NSCFString objectForKey:]:无法识别的选择器已发送到实例

来自分类Dev

[图像计数]:无法识别的选择器已发送到实例

Related 相关文章

  1. 1

    更新核心数据模型后出错-无法识别的选择器发送到实例

  2. 2

    核心数据获取[_NSObjectID_48_1 userName]:无法识别的选择器已发送到实例

  3. 3

    标签栏>拆分> NavigationController结果显示在[MasterViewController topViewController]中:无法识别的选择器发送到实例:核心数据

  4. 4

    存档数据时将无法识别的选择器发送到实例(NSCoding)

  5. 5

    Swift选择器-无法识别的选择器已发送到实例

  6. 6

    无法识别的选择器发送到实例日期选择器-迅速

  7. 7

    CoreData设置关系给出错误'-[WeatherObservation count]:无法识别的选择器已发送到实例

  8. 8

    无法识别的选择器已发送到FBSDKProfile类别的实例

  9. 9

    无法解决“无法识别的选择器已发送到实例”错误

  10. 10

    无法解决错误“ [__NSCFBoolean长度]:无法识别的选择器已发送到实例”

  11. 11

    核心数据异常:initWithCoder:]:无法识别的选择器已发送

  12. 12

    将@dynamic与Core Data一起使用时,无法识别的选择器发送到实例

  13. 13

    当我从另一个类调用时,无法识别的选择器发送到实例

  14. 14

    Xcode,无法识别的选择器发送到实例-但是在哪一行?

  15. 15

    错误-线程1:信号SIGABRT(无法识别的选择器发送到实例)

  16. 16

    -[UIView setAdUnitID1:]:无法识别的选择器已发送到实例

  17. 17

    iCarousel-numberOfItemsInCarousel:无法识别的选择器已发送到实例

  18. 18

    无法识别的选择器已发送到实例。NSInvalidArgumentExpection

  19. 19

    Swift 3:无法识别的选择器发送到实例Xcode 8

  20. 20

    iOS的FBSDK:“无法识别的选择器已发送到实例”

  21. 21

    iOS无法识别的选择器已发送到Swift中的实例

  22. 22

    [CBAutocompleteTextFieldField完成:]:无法识别的选择器已发送到实例?

  23. 23

    “无法识别的选择器已发送到实例”-添加搜索栏时出错

  24. 24

    UITapGestureRecognizer无法识别的选择器已发送到实例

  25. 25

    NSNotification无法识别的选择器已发送到Swift中的实例

  26. 26

    NSManagedObject setter给我[MyObject setName:]:无法识别的选择器发送到实例

  27. 27

    [__NSCFNumber长度]:无法识别的选择器已发送到实例UITableView

  28. 28

    [__NSCFString objectForKey:]:无法识别的选择器已发送到实例

  29. 29

    [图像计数]:无法识别的选择器已发送到实例

热门标签

归档