Ios 核心数据一对一关系抛出错误
我有如下图所示的核心数据模型,需要一对一的关系 当我试图在核心数据实体中添加记录时Ios 核心数据一对一关系抛出错误,ios,core-data,xcode7,Ios,Core Data,Xcode7,我有如下图所示的核心数据模型,需要一对一的关系 当我试图在核心数据实体中添加记录时 #import "ViewController.h" #import "MagicalRecord.h" #import "Child.h" #import "Parent.h" @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; Child *child = [Child MR_createE
#import "ViewController.h"
#import "MagicalRecord.h"
#import "Child.h"
#import "Parent.h"
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
Child *child = [Child MR_createEntity];
child.name = @"Child";
Parent *parent = [Parent MR_createEntity];
parent.name = @"parent";
parent.child = child;
}
Xcode将抛出如下错误
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unacceptable type of value for to-many relationship: property = "child"; desired type = NSSet; given type = Child; value = <Child: 0x7feec35bc840> (entity: Child; id: 0x7feec359af30 <x-coredata:///Child/tC70A9E87-948D-4407-AE19-73F9661A29372> ; data: {
name = Child;
parent = (
);
}).
***由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“to-many关系的值类型不可接受:property=“child”;所需类型=NSSet;给定类型=儿童;值=(实体:子;id:0x7feec359af30;数据:{
姓名=儿童;
父项=(
);
}).
转到数据模型编辑器(图形编辑器样式),选择父对象与子对象的关系,并确保您的关系如下所示:
从错误消息中,您似乎已将关系定义为“对多”。这就是为什么它希望关系
子对象使用NSSet
(实际上子对象更合适)
假设您想要一个多对多关系(即父母可以有多个子女),请将该关系重命名为上述复数形式,并确保模型如下所示:
Parent <--------->> Child
显然,如果出于某种原因您确实想要一对一的关系,请检查模型是否也反映了这一点
Parent <----------> Child
父-子
我认为这部分错误信息是:所需类型=NSSet;给定类型=儿童
可以帮助您了解您的问题现状我必须在两个实体之间建立一个关系,并且在日志Xcode中显示“对于多个关系,值的类型不可接受”,但我没有设置为多个关系关系。Parent.h上的child属性是child?是的,它是@property(null,非原子,retain)child*child;您能否编辑您的问题以添加Parent+CoreDataProperties.h
的内容?至少声明了child
的部分?您最近更新了数据模型吗?如果是,请从模拟器或您一直使用的设备中删除该应用程序。
Parent <----------> Child