首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSEntityDescription创建方法之间的差异

NSEntityDescription创建方法之间的差异
EN

Stack Overflow用户
提问于 2014-01-30 20:17:10
回答 3查看 1.2K关注 0票数 0
代码语言:javascript
复制
+ (id)insertNewObjectForEntityForName:(NSString *)entityName inManagedObjectContext:(NSManagedObjectContext *)context;

+ (NSEntityDescription *)entityForName:(NSString *)entityName inManagedObjectContext:(NSManagedObjectContext *)context;

我应该在什么时候使用它们呢?

EN

回答 3

Stack Overflow用户

发布于 2014-01-30 20:20:09

insertNewObjectForEntityForName创建实体的一个实例并将其添加到上下文中。上下文现在是脏的,需要保存。返回的实例是NSManagedObject的子类。

entityForName返回NSEntityDescription实例,该实例描述了实体,它具有哪些属性和关系,以及它们是如何构造的。上下文不会以任何方式修改。

票数 4
EN

Stack Overflow用户

发布于 2014-01-30 20:21:04

insertNewObjectForEntityForName:...返回的NSManangedObject对象与下面的代码相同。

代码语言:javascript
复制
NSManagedObjectModel *managedObjectModel =
        [[context persistentStoreCoordinator] managedObjectModel];
NSEntityDescription *entity =
        [[managedObjectModel entitiesByName] objectForKey:entityName];
NSManagedObject *newObject = [[NSManagedObject alloc]
            initWithEntity:entity insertIntoManagedObjectContext:context];
return newObject;

entityForName:..返回的NSEntityDescription对象与下面的代码相同。

代码语言:javascript
复制
NSManagedObjectModel *managedObjectModel = [[context persistentStoreCoordinator] managedObjectModel]; 
NSEntityDescription *entity = [[managedObjectModel entitiesByName] objectForKey:entityName]; 
return entity;
票数 1
EN

Stack Overflow用户

发布于 2014-01-30 20:27:25

id变量是表示对象地址的数据类型。因为它只是一个地址,id可以是任何对象,并且因为它的类型是指针,所以不需要包括*符号

代码语言:javascript
复制
+ (id)insertNewObjectForEntityForName:(NSString *)entityName inManagedObjectContext:(NSManagedObjectContext *)context;

因为*符号表示指向特定类型的指针。

代码语言:javascript
复制
+ (NSEntityDescription *)entityForName:(NSString *)entityName inManagedObjectContext:(NSManagedObjectContext *)context;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21456320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档