关于核心数据的问题

我开始开发核心数据库,我有几个我能理解的问题。 任何人都可以简单地解释一下,请保持简单。

1)

NSManagedObject *employee=[NSEntityDescription insertNewObjectForEntityForName:@"Employee" inManagedObjectContext:_managedObjectContext]; [employee setValue:self.empnametextfield.text forKey:@"empname"]; [employee setValue:self.empidtextfield.text forKey:@"empid"]; 

同时将数据保存到数据库中我使用这个代码。 但是,为什么我创buildNSManagedObject&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”的目的有什么区别?

请回答我的上述三个问题,因为我很困难呢? 提前致谢。

在构build核心数据堆栈时,将加载描述数据结构对象和关系的模型。 这是build立在实体描述方面。 他们持有数据的格式,名称,types,多重性和相关规则。 没有这个,你没有结构,你可能只是有一个通用的NSSet

因此,在对数据结构进行操作时,创build新的实体实例或查询时,需要获取正在使用的实体的描述,以便系统知道要使用的规则。