关于核心数据的问题

时间:2015-10-23 07:05:39

标签: ios

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

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个问题,因为我很困惑吗? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

构建核心数据堆栈时,您需要加载一个描述数据结构对象和关系的模型。这是根据实体描述构建的。它们保存数据的格式,名称,类型,多重性和相关规则。如果没有这个,你就没有结构,你可能只有一个通用的NSSet

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