iPhone中的核心数据默认使用哪种持久存储

2023-11-26

我正在我的应用程序中创建多个持久存储,但我仅使用一个持久存储协调器和托管对象模型。现在我的问题是,当我在托管对象上下文上调用 save 方法时,它将使用哪个持久存储来保存对象。所以我想指定用于保存对象的持久存储。同样,在从数据库中获取对象时,我想确保我的获取查询应该在特定存储上执行,以便我仅从该存储中获取对象。有什么帮助吗?


您可以使用配置。

[PersistentStoreCoordinator addPersistentStoreWithType:configuration:URL:options:nil error:]

假设您希望拥有单个托管对象上下文、单个托管对象模型、单个持久性存储协调器,但有两个持久性存储,例如第一个是 SQLite 存储,第二个是内存中存储。

对于此设置,您创建两个配置,“SQLiteStore”用于 SQLite 存储,“InMemoryStore”用于内存存储。在 XCode 中(打开 .xcdatamodel 文件):

.xcdatamodel file in XCode

您会看到托管对象模型的可用配置列表。托管对象模型配置基本上是一组与字符串名称关联的实体描述。添加配置使用编辑器 -> 添加配置打开 .xcdatamodel 文件后,打开主菜单项,然后输入您喜欢的字符串名称。将要存储在第一个 SQLite 存储中的实体拖至“SQLiteStore”配置,将其他实体拖至“InMemoryStore”配置。

好的,就是这样,现在是时候更新您的代码了。转到创建持久性存储协调器并向其添加持久性存储的范围。唯一的变化是为它们指定配置:

...
persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:yourManagedObjectModel];
NSURL storeURL = … // your store url
if (![__persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:@"SQLiteStore" URL:storeURL options:nil error:&error])
{
    NSLog(@"[Core Data error] Unresolved error %@, %@", error, [error userInfo]);
    abort();
}    

if (![__persistentStoreCoordinator addPersistentStoreWithType:NSInMemoryStoreType configuration:@"InMemoryStore" URL:nil options:nil error:&error])
{
    NSLog(@"[Core Data error] Unresolved error %@, %@", error, [error userInfo]);
    abort();
} 
...

现在就是这样,您拖动到“InMemoryStore”配置的所有实体都将自动保存到内存中的持久存储中,“SQLiteStore”也是如此。之后您可能需要在设备/模拟器上重新安装应用程序。

以及快速简历:

  1. 在托管对象模型编辑器(.xcdatamodel 文件)中创建配置;
  2. 在代码中向持久存储协调器添加几个持久存储,并提供适当的配置名称。

检查此链接以获取更多信息:http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/CoreData/Articles/cdBasics.html#//apple_ref/doc/uid/TP40001650-SW4

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iPhone中的核心数据默认使用哪种持久存储 的相关文章

  • 如何将 .ipa 转换为 .app 文件?

    每个人 我有一些 ipa 文件 想要转换为包含 app 包的存档文件 我试图这样做 但我没有办法 有什么办法可以做到这一点吗 请帮我 将 ipa 重命名为 zip 然后提取即可
  • UICollectionView 设置列数

    我刚刚开始学习 UICollectionViews 我想知道是否有人知道如何指定集合视图中的列数 默认设置为 3 iPhone 肖像 我查看了文档 似乎找不到简洁的答案 对于 Swift 5 和 iOS 12 3 您可以使用4 以下实现为了
  • 如何本地化 iOS 故事板

    我有一个包含一些视图的 iPhone 故事板 例如 导航项标题名为News 应翻译为其他语言 当我向故事板添加新的本地化版本时 它会为新语言创建当前故事板的副本 在这里我可以更改导航项的标题 但对我来说它似乎不太有用 如果我的故事板包含 1
  • supportedInterfaceOrientations 方法不会重写其超类中的任何方法

    在 UIViewController 中 这段代码 public override func supportedInterfaceOrientations gt UIInterfaceOrientationMask if let mainC
  • iOS FacebookSDK + 解析 SDK + GoogleMaps SDK

    我搜索了很多 然后我意识到 ObjC标记那个GoogleMapSDK需要 但不能很好地配合ParseSDK and FacebookSDK 所以我阅读了所有的 stackoverflow 答案并尝试解决我的问题 问题还没有解决 我执行的步骤
  • NSString 对象的最大长度是多少?

    NSString 对象中可以保存的最大字符串大小是多少 这会动态变化吗 我假设 NSString 的硬限制是 NSUIntegerMax 个字符 因为 NSString 的索引和大小相关的方法返回 NSUInteger 由于当前能够运行 i
  • Swift:Tableview 在导航栏下方滚动但在状态栏上方滚动?

    我使用以下技巧隐藏了导航栏的阴影 self navigationController navigationBar setBackgroundImage UIImage for default self navigationControlle
  • 从设备获取联系人列表时出现问题

    这段代码有什么问题 NSMutableArray contactArray NSMutableArray alloc init ABAddressBookRef addressBook ABAddressBookCreate CFArray
  • gestureRecognizer shouldReceiveTouch 持续存在于已释放的视图中导致崩溃

    我有一个相当简单的 UITableView 它在堆栈上推送一个新视图 新视图有一个像这样初始化的gestureRecognizer synthesize swipeGestureLeft void viewDidLoad swipeGest
  • 自定义 UINavigationController UINavigationBar

    基本上我想要一个定制UINavigationBar 我不希望它是 半透明 或任何东西 就像图片应用程序一样 我基本上想完全删除它 但我仍然希望能够在按下导航控制器时添加后退按钮等 并且我想要视图 例如 UITableViewControll
  • Bootstrap 响应式表格在 iOS 设备上无法垂直滚动

    这就是我所拥有的 div class table responsive table class table style background transparent table div 我正在使用以下 bootstrap css 文件 ht
  • Grand Central Dispatch (GCD) 调度源标志

    我最近不再使用 to GCD 调度来源 https developer apple com documentation dispatch 1385630 dispatch source create监视文件更改 效果很好 API 也变得更加
  • iOS - 在相机上放置自定义叠加层(垂直对齐)。顶部黑条的大小

    我正在寻找以下问题的编程解决方案 我想在相机 iOS 上绘制自定义叠加层 我希望它位于相机输出视图的垂直中央 我已经完成了相对于屏幕而不是相机图片居中绘制自定义视图 为此 我需要获得顶部黑条的大小 我怎么才能得到它 顶部和底部栏的大小不相等
  • SDK 和 iOS 部署目标。

    我使用最新的 SDK 4 1 构建项目并设置 iOS 部署目标 3 0 如果我使用4 0 sdk的某些方法 我可以在真正的iPhone 3 0上运行我的项目吗 您只能在 OS 3 设备上运行您的项目 如果有条件地编码围绕您想要使用的 OS
  • 如何在 iPhone 中使用 XMPPFramework 创建 MultiUserChatRoom

    我正在 iPhone 中使用 XMPPFramwwork 开发聊天应用程序 我成功完成了一对一聊天 现在我想在我的应用程序中开发多用户聊天 我尝试了以下代码 但未调用 XMPPRoomDelegate 的任何委托方法 我如何开始创建聊天室
  • 增加 iPhone 的推送通知徽章

    是否可以在收到通知时增加徽章值 或者我应该将计数作为有效负载发送吗 如果我每次都将徽章值发送为 1 那么如果应用程序未打开 我如何增加应用程序图标中的徽章值 我已经使用了这段代码 但不起作用 void application UIAppli
  • 找不到 Cocoa/Cocoa.h 文件

    我在用XMPPFramework在我的应用程序中 我已将 Cocoa Cocoa h 导入到我的 m 文件中 但是当我构建项目时Xcode显示错误 错误 未找到 Cocoa Cocoa h 文件 我该如何解决这个错误 如果您正在为 iOS
  • 隐藏 UITableview 单元格

    我正在尝试从 UITableView 中隐藏单元格 就像删除操作一样 但我只想隐藏它以便稍后在相同位置显示它 我知道 UITableViewCell 有一个名为 隐藏 的属性 但是当我使用此属性隐藏单元格时 它会隐藏但没有动画 并且会留下空
  • 如何安全地重命名 iOS 分发配置文件?

    我几个小时前刚刚提交了我的第一个应用程序 现在处于 等待审核 状态 但我犯了一个错误 我已经命名了我的分配配置文件My Company Distribution Profile 我应该做的事情被命名为我的发行版配置文件My GAME Dis
  • 从应用程序内发送电子邮件中的图像和文本

    如何从我的应用程序内通过电子邮件发送图像和文本 表格数据形式 请大家帮忙并提出建议 谢谢 void sendMailWithImage UIImage image if MFMailComposeViewController canSend

随机推荐

  • 如何在 Grails 中创建包含所有 i18n 消息的映射

    我需要它在控制器中渲染它的一部分 例如 class MessageController def index def messageMap listAlli18nMessages the question render contentType
  • Python 3.5 与 Python 2.7:模块导入子模块

    过去几个小时我一直在谷歌上搜索这个问题 但在任何地方都找不到类似的问题 此外 2 7 和 3 5 的文档似乎相同 因此我认为这种行为没有记录 这是我的目录结构 project project py api init py subapi in
  • maven-jaxb2-plugin VS jaxb2-maven-plugin 用于多个模式

    我有多个 xsd 模式 我想将它们解组到不同的包中same folder target generated sources xjc 我尝试了这两个插件 似乎都可以很好地使用这两种配置 但在 maven jaxb2 plugin 的情况下 e
  • MYSQL左连接结果的最后一行

    我需要一些 MYSQL 帮助 我有一个名为 Tickets 的表和一个名为 statusLogs 的表 我该如何 select t sl statusId from ticket LEFT JOIN select from statusLo
  • 使用扩展方法的实体框架分页很慢?

    我在 C 的实体框架中遇到查询缓慢的问题 我创建了一个名为 Page 的扩展方法来处理分页 但是当我使用它时 查询变得非常慢 如果我只是执行 Skip page Value pageSize Value Take pageSize Valu
  • 当目标是类型时,为什么 Coq 不允许反转、析构等?

    When refine正在运行一个程序 我试图通过以下方式结束证明inversion on a False假设当目标是Type 这是我尝试做的证明的简化版本 Lemma strange1 forall T Type 0 gt 0 gt T
  • 如何实现一个具有placement new和emplace功能的简单容器?

    我需要实现一个容器来容纳一定数量的元素 并且出于某种原因 它必须在没有任何堆分配的情况下工作 另一个要求是 容器元素不应以任何方式复制或移动 它们必须直接构建到容器分配的内存中 为此 我决定使用placement new并将内存管理完全委托
  • 地理点之间的距离

    我在计算两个地理点之间的距离时遇到问题 地理点是 position1 mapView getProjection fromPixels int e getX int e getY 另一个 double lat 35 1064 double
  • 如何找到两个数据库之间的差异? [关闭]

    Closed 这个问题是无关 目前不接受答案 我正在尝试将更改从数据库复制到数据库 但是我不知道这些更改到底是什么 是否有一个 SQL 脚本可以查找数据库之间不同的对象 然后生成一个脚本来更新 DatabaseB 以匹配 DatabaseA
  • 如何读取 UISlider 拇指图像的大小

    我试图在 UISlider 中的拇指上方居中放置一个额外的 UIView 为此 我需要拇指图像的宽度 在 iOS6 中 这工作得很好 我可以用 CGFloat thumbWidth self navSlider currentThumbIm
  • Java:如何确定正则表达式模式匹配失败的原因?

    我正在使用正则表达式来匹配模式是否匹配 但我也想知道它何时失败 例如 假设我有一个模式 N 1 3 Y 我将它与字符串 NNNNY 进行匹配 我想知道失败是因为N太多了 或者 如果我将其与字符串 XNNY 进行匹配 我想知道它失败是因为字符
  • 如何正确地在单词前面加上“a”和“an”?

    我有一个 NET 应用程序 给定一个名词 我希望它正确地为该单词添加 a 或 an 前缀 我该怎么做呢 在您认为答案是简单地检查第一个字母是否是元音之前 请考虑以下短语 一个诚实的错误 一辆二手车 下载维基百科 解压缩它并编写一个快速过滤程
  • 将base64图像数据转换为angularjs中的图像文件

    在 AngularJS 中将 Base64 文件转换为图像时文件损坏 任何人都可以建议我如何在 AngularJS 中将 Base64 文件转换为图像 我正在使用这种方法将base64文件转换为图像 var imageBase64 imag
  • 如何分割一个大的 xml 文件?

    我们将 记录 导出到 xml 文件 我们的一位客户抱怨该文件太大 他们的其他系统无法处理 因此 我需要拆分文件 同时在每个新文件中重复 标题部分 因此 我正在寻找一些东西 可以让我为应该始终输出的部分定义一些 xpath 并为 行 定义另一
  • 暂停,恢复时给出上次暂停的值

    我有一个热Observable由套接字供电 我可以使用pausable暂停套接字馈送 但是 一旦我 取消暂停 可观察对象 我需要显示在订阅暂停时套接字可能发送的最后一个值 我不想跟踪套接字手动发送的最后一个值 这怎么可能暂停 从文档中的示例
  • CBPeripheralManager startAdvertising 无法在 OS X yosemite 上运行

    使用您的 mac 运行 OS X 10 10 yosemite DP 6 作为 iBeacon 时有人注意到任何问题吗 我尝试了几种工具 也自己开发了它 使用 CBPeripheralManager startAdvertising 但没有
  • React-native-video 播放 Vimeo 和 YouTube

    我想知道是否可以通过 React Native 组件react native video 播放 Vimeo 和 YouTube 到目前为止 我的研究表明这几乎是不可能的 因为react native video需要直接引用文件 或流 而这些
  • 如何在 Delphi 中使用或解决视觉表单继承问题?

    我一直在 Delphi 7 中从事一个项目 我想让表单从其他表单继承组件 我能够完成这项工作 但遇到了以下问题 我将发布解决方案 希望将来能帮助其他人 在表单的 pas 文件中 我会将表单更改为从其他表单继承 但它不会从祖先表单获取组件 对
  • 如何转义任意字符串以用作 Windows 中的命令行参数?

    我有一个字符串列表 我想在单个 Windows 命令行调用中将这些字符串作为参数传递 对于简单的字母数字字符串 只需逐字传递它们就足够了 gt script pl foo bar baz yes no foo bar baz yes no
  • iPhone中的核心数据默认使用哪种持久存储

    我正在我的应用程序中创建多个持久存储 但我仅使用一个持久存储协调器和托管对象模型 现在我的问题是 当我在托管对象上下文上调用 save 方法时 它将使用哪个持久存储来保存对象 所以我想指定用于保存对象的持久存储 同样 在从数据库中获取对象时