我开始开发核心数据库,我确实有几个问题,我无法理解。任何人都可以简要解释一下,请保持简单。
1)
NSManagedObject *employee=[NSEntityDescription insertNewObjectForEntityForName:@"Employee" inManagedObjectContext:_managedObjectContext];
[employee setValue:self.empnametextfield.text forKey:@"empname"];
[employee setValue:self.empidtextfield.text forKey:@"empid"];
将数据保存到数据库中时,我使用此代码。但是为什么我要创建NSManagedObject&的实例。 NsentityDescription?
2)
_fetchrequest=[[NSFetchRequest alloc]init];
NSEntityDescription *entity=[NSEntityDescription entityForName:@"Employee" inManagedObjectContext:_managedObjectContext];
[_fetchrequest setEntity:entity];
NSError *error;
_fetchedobjects=[_managedObjectContext executeFetchRequest:_fetchrequest error:&error];
当我获取数据时,我使用此编码。所以我的问题是为什么我在这里使用NSEntity描述的实例?
3)我们使用的目的之间有什么区别" NSEntityDescription"在节约与保护提取数据?
请回答我的上述3个问题,因为我很困惑吗? 提前谢谢。
答案 0 :(得分:0)
构建核心数据堆栈时,您需要加载一个描述数据结构对象和关系的模型。这是根据实体描述构建的。它们保存数据的格式,名称,类型,多重性和相关规则。如果没有这个,你就没有结构,你可能只有一个通用的NSSet
。
因此,当您对数据结构进行操作,创建新实体实例或查询时,您需要获取正在使用的实体的描述,以便系统知道要使用的规则。