ios - 创建 NSFetchRequest 的两种方式有什么区别

标签 ios core-data nsfetchrequest

方式1:

NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Event" inManagedObjectContext:managedObjectContext];

方式2:

NSFetchRequest* fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Event"];

在方式 1 中,需要一个托管对象上下文,但在方式 2 中不需要。 有人能澄清这两者之间的区别吗?尤其是在表演上。 谢谢!

最佳答案

区别在于,在第二个选项中,当在第一个选项中的上下文 executeFetchRequest:error: 中执行请求时,将获取用于将提供的实体字符串解析为实际实体的上下文您自己解析该实体。

如果您使用共享同一模型的多个商店,则应在每次执行提取时设置请求的实体(如果您使用不同的商店),以便获得您请求的结果。

关于ios - 创建 NSFetchRequest 的两种方式有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16140796/

相关文章:

ios - 如何测试 NSMutableArray 中是否有 _NSCFConstantString?

ios - CoreData 嵌套上下文 : what is the proper way to save context?

ios - 使用 NSPredicate MATCHES 获取 CoreData 实体时,用户输入的键会破坏正则表达式

ios - 核心数据 NSFetchrequest 整数

ios - 你能从 IOS 中的 assetURL 获取图像文件名吗?

ios - Xcode 中的 "Include UI Tests"复选框是什么?

ios - iOS 中的 MVVM : who is the responsible for the assembly?

ios - NSManagedObjectContext:如何从 UIViewController 获取 iOS 中的 ManagedObjectContext?

ios - Swift:在核心数据模型中搜索字符串

ios - 嵌套核心数据获取