Ios 在存储核心数据时,是否必须同时存储两个实体数据?
我正在创建一个核心数据应用程序,其中:Ios 在存储核心数据时,是否必须同时存储两个实体数据?,ios,xcode,cocoa-touch,core-data,Ios,Xcode,Cocoa Touch,Core Data,我正在创建一个核心数据应用程序,其中: 类别实体具有以下属性 catid:int catname:字符串 随机关系:与brandom实体的许多关系 brandom是另一个具有属性的实体 cid:类别实体 否:int arr:int 我的代码如下 category *c=[NSEntityDescription insertNewObjectForEntityForName:@"category" inManagedObjectContext:context]; for (i
类别
实体具有以下属性
catid:int
catname:字符串
随机关系:与brandom实体的许多关系
brandom
是另一个具有属性的实体
cid:类别实体
否:int
arr:int
我的代码如下
category *c=[NSEntityDescription insertNewObjectForEntityForName:@"category" inManagedObjectContext:context];
for (int i=0; i<[arrayofnumbers count]; i++) {
brandom *r=[NSEntityDescription insertNewObjectForEntityForName:@"brandom" inManagedObjectContext:context];
c.catid=[NSNumber numberWithInt:i];
r.cid=c;
r.no=[NSNumber numberWithInt:i+1];
int objectatindex=[[arrayofnumbers objectAtIndex:i] intValue];
NSLog(@"object at index:%i",objectatindex);
r.arr=[NSNumber numberWithInt:objectatindex];
[set addObject:r];
}
c.randomrelation=r;
NSLog(@"set element count=%i",[set count]);
if (![context save:&error]) {
NSLog(@"%@",[error localizedDescription]);
}
category*c=[NSEntityDescription insertNewObjectForEntityForName:@“category”inManagedObjectContext:context];
对于(inti=0;i我不太确定我是否理解你的问题
关于标题问题,如果您询问是否必须存储与关系相关的不同实体的数据,答案是它取决于
如果属性(关系)已声明为可选(1),则可以在应用程序生命周期内的不同时间执行此操作;如果声明为非可选(2),则必须同时进行设置
因此,如果在第一种情况下(1)如果可以设置,您可以创建类别
实体,并在不同的时间设置其关系随机关系
。在第二种情况下(2),您需要同时设置两者,因为核心数据将给出一致性错误
关于您的型号的一些说明。
首先调用类名之类的元素,例如Category
而不是Category
,并采用驼峰式表示法
其次,创建一个从Brandom
到Category
的反向关系。反向rels允许您保持图形的一致性。在您的模型中Category
有一个到多个rel到Brandom
声明为可选和Brandom
有一个反向和非可选rel(一对一)到类别
。这允许您创建一个类别
,其中包含零个或多个品牌
,但品牌
如果没有类别
就无法“生存”
希望能有所帮助。对不起,我不明白你的问题。你问的是什么?你能解释一下吗?我有两个实体第一个一类第二个一类的随机数,类与随机数之间的关系是多对多的,从随机数到类别是一对多的,我在问,如何存储数据?