CoreData 警告:多个 NSEntityDescription 声明 NSManagedObject 子类

2024-03-16

我突然在 iOS12/XCode 9 上收到一堆警告。为什么有多个托管对象模型?该应用程序只有一个 *.xcdatamodeld 文件,但模型中有多个版本。

这是 iOS12 Coredata 的新功能吗?我可以采取什么措施来防止此警告,还是应该忽略它?

2018-09-18 11:45:34.487073+1000 xxxxxxxxx[4422:1419983] [error] warning:     'Stats' (0x2812f1550) from NSManagedObjectModel (0x2806ff480) claims 'Stats'.
CoreData: warning:       'Stats' (0x2812f1550) from NSManagedObjectModel (0x2806ff480) claims 'Stats'.
2018-09-18 11:45:34.487084+1000 xxxxxxxxx[4422:1419983] [error] warning:     'Stats' (0x2812f3bd0) from NSManagedObjectModel (0x2806b18b0) claims 'Stats'.
CoreData: warning:       'Stats' (0x2812f3bd0) from NSManagedObjectModel (0x2806b18b0) claims 'Stats'.

我刚刚解决了为持久容器使用计算属性时出现的相同错误。因此,每次应用程序访问持久容器/存储时,都会从磁盘创建新的数据模型实例。

当我将持久容器更改为惰性存储属性后,问题就消失了。

[update]

目前,我对核心数据堆栈使用一个单独的类,其中使用如下所示的单例:

class DataCtrl : NSObject {

    static shared = DateCtrl()
    var container: NSPersistentContainer?
    
    private override init() { 
        container = NSPersistentContainer(name: "dataModelName")
    }

    func loadStore(completionHandler: @escaping () -> ()) {
        self.container?.loadPersisentStores() { desc, err in ...
            completionHandler
        }
    }
}

然后我可以轻松地在 tableViewController 扩展中使用计算属性:

var container : persistentContainer { return DateCtrl.shared.container }

当然,您需要调用 AppDelegate didFinishLaunchingWithOptions 块中的 func loadStore 来首先加载持久存储,其中使用completionHandler 中的 DispatchGroup() 来控制加载第一个视图控制器的数据模型。

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

CoreData 警告:多个 NSEntityDescription 声明 NSManagedObject 子类 的相关文章

  • 如何在 Core Data 上下文之外使用 Core Data 模型子类?

    我正在尝试在 Swift 中制作一个天气应用程序 它将保存我添加到核心数据的城市 每个城市都包含一个天气对象 该对象也保存到核心数据和其他各种变量 但我很快就发现 在 Core Data 上下文之外使用 Core Data NSManage
  • 父/子 NSManagedObjectContext 的正确实现

    我的应用程序有时会将不一定要保存的对象插入到托管对象上下文中 例如 当我启动 添加实体 模式时 我创建一个托管对象并将其分配给该模式 如果用户从该模式保存 我会保存上下文 如果他取消 我会删除该对象并且无需保存 我现在引入了一个 导入 功能
  • NSFetchedResultsController 获取请求 - 更新谓词和 UITableView

    在我的 iPhone Core Data 应用程序中 我将其配置为主从视图设置 主视图是一个 UITableView 它列出了List实体 List 实体与Task实体 称为 任务 并且任务实体与List称为 列表 When a List在
  • 使用 NSPredicate 将所有值相加

    我有一个使用核心数据的程序 在循环中添加每个实体的数值时 我有点作弊 我读到有关使用 NSPredicate 来过滤数据的内容 但我不知道如何操作数据或如何存储结果 谢谢 如果符合您的要求 您可以分两步完成 首先用你的过滤你的数据NSPre
  • 复杂对象上的自定义 NSSortDescriptor

    这是我的第一篇文章 如果我可能不尊重所有惯例 我很抱歉 尽管我会尽力而为 我以前总是在 SO 上找到解决我的问题的方法 但我完全陷入了一个相当复杂的可可问题 我正在尝试对 CoreData 对象列表进行复杂的排序 我有一个由 Book 对象
  • 如何防止“CoreData无法完成故障”?

    我们偶尔会收到 CoreData 无法完成故障 的信息 我们已阅读 Apple 文档 但不清楚允许保留哪些内容 我们非常小心地为每个线程创建一个上下文等 但是 我们的应用程序正在做的一件事是我们在 UIViewController 上保留
  • UIManagedDocument 迁移数据模型

    我正在开发一个 iPhone 应用程序 它使用UIManagedDocument并将其文档存储在 iCloud 上 一切都工作正常 直到我更改了我的核心数据模型 方案 添加了新的模型版本 就像我在过去几周内多次所做的那样 我添加了一个新属性
  • UITableView 未更新

    我正在使用核心数据模型和 UITableViewController 表视图 我的模型似乎工作得很好 但是当我向模型添加实体时 我的表视图没有更新 我相信我的模型有效的原因是 当我添加一个实体时 在运行时视图中不会显示任何内容 但是如果我剪
  • NSFetchedResultsController XCode 7 问题

    Xcode 7 beta 6 和 NSFetchedResultsController 今天让我头疼 如果我使用 Xcode 6 编译相同的代码 使用 Swift 2 修复 程序可以在设备和模拟器 iOS 7 iOS8 上运行 但是 如果我
  • Swift NSSet 和 CoreData

    我正在尝试将目标 C 和 CoreData 应用程序移动到 Swift 和 iOS 但在迭代 NSSet 对象时遇到了困难 Xcode 已生成这些类 class Response NSManagedObject NSManaged var
  • 循环核心数据 NSSet 的正确语法

    每当我循环遍历核心数据关系 NSSet 时 我必须将集合转换为数组 for student in classroom students allObjects as Student print student name 或者我可以正常循环遍历
  • iCloud Core Data 在 Xcode 6 / ios 8 SDK 中运行后不可用

    我有一个使用 Core Data 和 iCloud 同步的应用程序 它在 iOS 7 中运行良好 自从在 XCode 6 中运行它以来 即使在 iOS 7 设备上 我也遇到了一些问题 这是我的测试 在 iOS 7 设备上 从应用程序商店下载
  • 使用新数据快速更新 UITableView

    我正在尝试重新填充我的UITableView来自另一个 JSON 调用的数据 然而 我当前的设置似乎不起作用 虽然有很多相同的问题 但我可以找到我已经尝试过的答案 我将 API 数据保存在CoreData实体对象 我用我的 UITableV
  • 今天 iCloud + Core Data(2015 年 7 月 10 日)

    几年前 Apple 发布了 Core Data 应用程序的 iCloud 同步 然后我发布了一个适用于 iPad iPhone MAC 的应用程序 其共享模型使用新的 Apple 机制 事情并没有按预期进行 同步机制有时不起作用 例如 就我
  • 构建复杂 NSCompoundPredicate 的最佳方法是什么?

    我需要建立一个NSPredicate有很多数据 例如 在 SQL 中我会执行如下操作 SELECT FROM TRANSACTIONS WHERE CATEGORY IN categoryList AND LOCATION IN locat
  • 关系上的核心数据属性?

    我刚刚开始使用核心数据 我有一个Headache实体和一个Medication实体 头痛和药物之间存在多对多的关系 当您加重头痛时 您可以选择多种药物 我希望能够指定这些药物的数量 我对 MySQL 更熟悉 您可以在其中创建一个数据透视表
  • 具有多个 sqlite 文件的核心数据

    如何将 Core Data 与多个 SQLite 文件一起使用 每个文件都包含相同的结构 但数据是从不同的位置检索的 我希望能够在运行时根据应用程序设置在这些 sqlite 文件之间切换 当然 只需指向持久存储协调器 NSPersisten
  • 核心数据:为什么必须调用重新加载数据才能使我的应用程序运行?

    我花了整个晚上调试一个简单的应用程序 该应用程序从网络检索一张图像 是的 是的 旨在让我的生活更轻松 并将其显示在表格视图中 我这样做是为了练习学习核心数据 在我修复它之前 错误消息显示如下 2012 09 30 06 16 12 854
  • 核心数据对多关系。它们是延迟加载吗?

    我在核心数据 适用于 iPhone 中有典型的模型 其中包含部门和员工 部门 gt gt 员工 我不想每次加载时都加载一个部门的所有员工 所以我想将员工创建为获取的属性 我想我可以定义一些像这样的谓词 employee deparmentI
  • 在视图之间传递核心数据实体变量

    我无法理解如何在视图之间使用核心数据实体变量 为了更好地理解我的问题是什么 我的代码如下 View A 基本上 您必须将完整预算实体或相关预算实体的 ID 从视图 A 传递到视图 B 由于不知道您的应用程序的视图层次结构和逻辑 我假设您选择

随机推荐

  • Angularjs - 如何对表单验证进行单元测试

    我在用着Jasmine http jasmine github io 对我的 Angular 应用程序进行单元测试 如何在我的控制器中测试表单验证 例如我有一个登录功能 scope login function if scope form
  • JavaFX 2.0 TabPane:选项卡位于左侧并保持选项卡标题水平

    我正在尝试为 Web 应用程序开发 GUI 并且想设置一个 TabPane 其中选项卡放置在左侧 保持选项卡标题水平 我已经找到了如何将选项卡放在左侧 但经过多次搜索后 我没有成功将标题设置为右对齐 它们仍然是垂直的并且难以阅读 我该如何解
  • Android Studio 项目视图中的重复文件

    我有一个奇怪的问题 项目特定的根级别文件 gitignore gradlew gradle properties 等 在 Android Studio 的项目视图中显示两次 有人知道如何解决这个问题吗 我尝试重新导入项目 删除 iml 和
  • 实体框架事务

    我有一个程序在两台服务器上重复运行 我需要在程序中选择和更新数据库记录 因此我需要来自EF的表锁或事务 否则程序的每个副本都可以选择和修改相同的记录 虽然第一个副本使数据库发生更改 但另一个副本不应运行相同的代码部分 我在 EF 中找到了
  • 有多少 Java 6 API 是由 Android 实现的?

    我想将一个小型开源AES加密类移植到Android上 如果Android的API尽可能接近Java 6 API 那么我的工作量会减少很多 实现了多少 或可参考 因为我尝试在谷歌上搜索这个内容 但我还没有想出任何有用的东西 恕我直言 一般来说
  • 代理下使用 HTTPClient 4.5 的 Resttemplate 连接超时

    如何设置超时时间 我已经设置了几乎所有的超时配置 通常没有代理就可以正常工作 当我使用代理连接详细信息进行连接时 会出现问题 日志显示正在连接 但未收到回复 2020 03 04 19 53 39 751 DEBUG main org sp
  • Bash:如何从参数设置变量并使用默认值

    很明显 使用 shell 脚本可以通过多种方式完成这类事情 比大多数编程语言都多 因为有各种不同的变量扩展方法和程序 例如test and and etc 现在我只是在寻找 DIR 1 or 这意味着 我的 DIR 变量应该包含第一个参数中
  • Android 弹出窗口不填满屏幕尺寸?

    I am trying to make a simple pop up window But every time I make one it ends up being super small and not the length I w
  • 如何使用 CodeIgniter 设置日期格式

    我试图弄清楚我在这里做错了什么 我想要格式化date published我的查询中的字段 我得到了t string syntax error在我的 IDE 中 this gt db gt select site news articles
  • eclipse intellij 可以将 Github 用于同一项目

    是否可以在 GitHub 中创建一个项目 并且使用 Eclipse 和 Intellij 等不同 IDE 的两个团队可以使用 github 配置项目并可以同时在同一个项目上工作 我已经搜索过但无法找到正确的解决方案 是的 您甚至可以版本 y
  • 较大图像文件中的质量更好的缩略图

    我将其他网站的图像显示为缩略图 为此 我将它们显示在较小的 img 标签中 以便浏览器减小尺寸 问题是这些图像的质量 我无法控制 下降了 而且它们在 FF 和 Safari 中看起来比在 IE 中好得多 有没有办法让这些图像看起来更好而不将
  • 组合 .csv 并将文件名添加为列

    这是我的担忧 我有一个包含多个 csv 文件的文件夹 我想将它们组合 合并到一个 csv 文件中 但我需要将每个 csv 的文件名添加为 csv 本身的一列 以便我可以知道哪个条目来自合并文件中的哪个 csv 文件 我没有编码经验 但是我在
  • 如何随机选择地球表面的一个点?

    正如标题所说 如何无偏差地随机选择地球表面的一个坐标 执行 rand 90 90 rand 180 180 的简单解决方案将有利于极地地区而不是赤道地区 听起来您正在寻找球体上的均匀随机分布 http mathproofs blogspot
  • 在页面之间来回发送 PHP 变量

    我创建了一个注册表单 它成功地将其变量从注册页面 go gold php 传递到摘要 验证页面 go gold summary php 数据正确显示在第二页上 但是 我希望能够使用图像按钮返回到注册页面 以防用户输入错误 返回 原始表单现在
  • 如何克服Excel中超链接的限制?

    我有超过 100000 个单元格的链接列表 我必须为所有这些内容提供超链接 但在 Excel 中存在限制65530 https support microsoft com en us office excel specifications
  • 未暂存的更改将文件显示为已删除,即使该文件存在

    我的存储库中的一个文件让我非常头疼 git status在 未暂存提交的更改 下将其显示为 已删除 并且还在 未跟踪的文件 下显示完全相同的文件 该文件肯定存在于我的磁盘上以及远程存储库上 如果我删除该文件 未跟踪的文件 中的条目就会消失
  • 永不过期的不记名令牌

    是否可以定义永不过期的 ASP NET Web API 2 不记名令牌 有什么线索吗 我认为我们也可以通过使用下面给出的代码来实现这一点 AccessTokenExpireTimeSpan TimeSpan MaxValue 据 MSDN
  • 没有代理/存根 DLL 的进程外 COM 服务器?

    我正在学习如何实现进程外 COM 服务器 并发现了这篇代码项目文章 构建本地 COM 服务器和客户端 分步示例 http www codeproject com Articles 8679 Building a LOCAL COM Serv
  • 伪类:hover 在 IE7 中不起作用

    我有这样一个简单的代码 div class div1 div class div2 Foo div div class div3 div class div4 div class div5 Bar div div div div 和这个CS
  • CoreData 警告:多个 NSEntityDescription 声明 NSManagedObject 子类

    我突然在 iOS12 XCode 9 上收到一堆警告 为什么有多个托管对象模型 该应用程序只有一个 xcdatamodeld 文件 但模型中有多个版本 这是 iOS12 Coredata 的新功能吗 我可以采取什么措施来防止此警告 还是应该