Tag: Nspersistentcontainer

iOS 2018系列:破解iOS采访或成为iOS专家(7)

第7章:核心数据与并发 假设您正在开发一个小型或简单的应用程序,那么您可能看不到在后台运行Core Data操作的好处。 但是,如果在第一次启动应用程序时在主线程上导入了数百或数千条记录,将会发生什么情况? 结果可能是戏剧性的。 当使用核心数据时,我们在现实的编程世界中都面临着所有这些问题,因此让我们讨论解决方案。 基本: 核心数据是用于管理应用程序中的模型层对象的框架 并发是同时处理多个队列上的数据的能力。 脚步: *初始化核心数据栈 使用模型文件创建管理对象模型实例 使用管理对象模型实例创建持久性存储协调器 使用SQLite或SQLite dB的其他类型和文件路径在PSC实例中添加永久存储 创建并发类型为NSMainQueueConcurrencyType和NSPrivateQueueConcurrencyType托管对象上下文。 在“管理”对象模型实例中设置持久性存储协调器。 *创建和保存托管对象 使用NSEntityDescription实体创建实体 使用实体和MOC创建需要插入的行实例,该实例将成为被管理对象实例。 在MO实例中设置Value 将MO条目保存在核心数据中-上下文。 保存() *提取对象 准备实体的NSFetchRequest类型的请求 let request = NSFetchRequest (实体名称:“用户”) 2.从上下文中以[NSManagedObject]数组的形式获取结果 让结果=尝试context.fetch(request) 3.遍历数组以获取特定键的值 对于数据结果! [NSManagedObject] 核心数据堆栈设置-简单方法(NSPersistentContainer) 设置核心数据堆栈需要一些工作。 典型的设置需要许多步骤: 从应用程序捆绑包中加载托管对象模型 使用模型创建一个持久性存储协调器 要求协调器加载持久性存储 创建一个或多个托管对象上下文 从iOS 10开始, NSPersistentContainer 删除了大部分样板代码。 在应用程序中封装核心数据堆栈的容器。 如果采用一些简单的命名约定和默认存储位置,则核心数据栈的设置可以像这样简单: container = NSPersistentContainer(name: “storeName”) container.loadPersistentStores { (storeDescription, […]