Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/96.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 核心数据一对一关系抛出错误_Ios_Core Data_Xcode7 - Fatal编程技术网

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