Xcode中内核持久存储类型的核心数据的默认方法

问题描述 投票:1回答:1

根据apple doc的Persistent Store Types and Behaviors,核心数据的内置持久存储类型是1. XML 2. Binary 3. SQLite 4. In Memory

我的问题是,当我们在xcode中使用核心数据模型时,这些是默认的商店类型,我们如何改变它

core-data swift4 swift4.2
1个回答
1
投票

那么,NSPersistentStore是一个抽象的基类。必须在代码中有意创建其四个子类中的一个。因此,实际上并没有默认的商店类型。

但是,当您在Xcode中选择一个New Project或New Target模板时,会生成一些模板代码。在当前版本(Xcode 10)中,当您打开使用核心数据复选框时,您将在AppDelegate实现中获得一个lazy var persistentContainer属性,该属性提供单个NSPersistentContainer对象。默认情况下,这是您将在新目标中使用的商店。但是那种商店类型是什么?好吧,NSPersistentContainer的持久存储在其persistentStoreDescriptions数组属性中指定。默认情况下,此数组包含一个SQLite类型的持久存储,由应用程序容器的Application Support文件夹中的文件提供支持。这是一种循环方式,是您询问的默认商店类型。

更改此商店类型的过程在the documentation of NSPersistentContainer.persistentstoredescriptions的讨论部分中进行了解释。

所以你看到默认实际上是在Xcode项目模板中。为了得到你想要的东西,你可以将你在阅读该文档后编写的代码放入一个新的项目模板中并将其添加到你的~/Library中。您可以覆盖其中一个默认项目模板,也可以使用新名称创建自己的模板。这个blog post by Jake Craige给出了一个基本的例子。如果这还不够,凯斯哈里森已经发表了一个非常thorough reverse engineering of Xcode Project Templates

© www.soinside.com 2019 - 2024. All rights reserved.