核心数据和保留周期

2023-11-22

我有一个核心数据类 Game,它与另一个类 Player 具有一对多关系。这就是他们的标题的样子

@property (nonatomic, retain) NSSet * players; // In Game.h
@property (nonatomic, retain) Game * game; // In Player.h (the inverse relationship)

当我释放对 Game 类的最后一个外部引用时,没有调用 didTurnIntoFault。现在,我的问题是,这可能是由于上面创建的循环引用造成的(如您所见,这两个属性都是“保留”),还是核心数据管理所有这些,问题出在我的代码中的某个地方。


See 核心数据编程指南:内存管理(打破关系保留周期).

当托管对象之间存在关系时,每个对象都会维护对其相关的一个或多个对象的强引用。在托管内存环境中,这会导致保留周期(请参阅对象所有权和处置)可以防止释放不需要的对象。为了确保打破保留循环,当您完成一个对象时,您可以使用托管对象上下文方法refreshObject:mergeChanges:把它变成一个错误。

您通常使用refreshObject:mergeChanges:刷新托管对象的属性值。如果mergeChanges标志是YES,该方法将对象的属性值与持久存储协调器中可用的对象的属性值合并。如果标志是NO然而,该方法只是将对象恢复为故障,而不进行合并,从而导致它释放相关的托管对象。这会破坏该托管对象与其保留的其他托管对象之间的保留周期。

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

核心数据和保留周期 的相关文章

  • 使用按计数分组的核心数据获取属性

    这是我想为 Core Data 编写的查询的 SQL 版本 SELECT Group Name COUNT Item Name FROM Item INNER JOIN Group ON Item GroupID Group ID GROU
  • 如何从 Xcode 4 中的实体创建用户界面?

    我已经用核心数据进行了几天的实验 并且在过去的几个小时里尝试找出如何从 xcode 4 中的实体创建 UI 根据我一直在阅读的书籍 您必须选择将核心数据实体拖到界面生成器中的窗口中 但是当我在 xcode 4 中执行此操作时 没有任何反应
  • 核心数据:为什么必须调用重新加载数据才能使我的应用程序运行?

    我花了整个晚上调试一个简单的应用程序 该应用程序从网络检索一张图像 是的 是的 旨在让我的生活更轻松 并将其显示在表格视图中 我这样做是为了练习学习核心数据 在我修复它之前 错误消息显示如下 2012 09 30 06 16 12 854
  • DatePicker 停止 CoreData 按预期工作

    我有一个应用程序 它保存 UIDatePicker 中的文本和日期 然后在您回到 UIDatePicker 中的该日期时显示该注释 效果很好 只有我发现将 UIDatePicker 日期设置为今天会停止 CoreData 工作 只有当我运行
  • CloudKit 和 Core 在设备之间同步数据

    我创建了一个简单的Notes应用程序基于Core data 现在我想在用户设备之间添加同步 以及我读过的所有文章 this https www raywenderlich com 134694 cloudkit tutorial getti
  • 在 iPhone 上下载、保存和播放 mp3

    我想从某个网站下载 mp3 文件 将其保存到我的 CoreData 模型 AudioMp3 中 然后播放 下面的函数可以工作 但首先 效率低下 因为它必须首先将 mp3 保存到文件 其次 它在接下来的调用次数中重复播放相同的 mp3 我认为
  • iOS 5 核心数据冻结

    我尝试做以下简单的事情 NSArray entities context executeFetchRequest inFetchRequest error fetchError 没有什么花哨 但这在 iOS 5 中冻结 在 iOS 4 中工
  • 在 iOS 中对 Google 地图标记进行聚类

    我有一个基于地图的应用程序 使用 Google 地图的 iOS SDK 我需要在核心数据数据库中存储多达数千个项目 并在地图上用标记显示它们 出于性能和可用性的原因 我需要在用户缩小时对这些标记进行聚类 但我需要确保放置代表性标记 以便用户
  • Core Data 与 SQLite 3 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • iOS 7 NS 单线程安全合并冲突

    重新排序两行后 在单线程应用程序上保存简单的数据时遇到问题 我已经成功地简化了编码以重现错误 并且希望其他人尝试这一点时得到第二个意见 这是一次健全性检查 因为我怀疑 iOS 7 引入的核心数据问题 而这在 iOS 6 中工作正常 首先 启
  • 删除后台 moc 中的对象然后在主 moc 中刷新它会导致 NSFetchedResultsController 更新崩溃

    我遇到了一个NSObjectInaccessibleException我无法理解 Terminating app due to uncaught exception NSObjectInaccessibleException reason
  • IOS Coredata 兼容 IOS 9 和 ios 10

    您好 我正在开发一个适用于 IOS 10 和 9 xcode 8 的应用程序 创建新实体对象的正确方法是什么 新的IOS 10有这个代码 var newEvent Event context context 我们如何让这段代码同时适用于 I
  • iCloud 超时。 (使用iCloud + Core Data + Magical Record

    我开始了一个应用程序测试来使用Core Data and iCloud 使用魔法记录 经历了一番配置之后Provisioning Profiles和权利 应用程序终于运行了 一段时间后 应用程序崩溃并抛出此消息 2012 12 31 03
  • Core Data + CloudKit 无法在其他设备上自动刷新?

    我的 SwiftUI 应用程序与 Core Data CloudKit 一起使用 我可以从 Mac 或 iPhone 将新条目保存到数据库中 该应用程序对所有设备使用完全相同的项目 代码库 唯一的问题是我需要关闭应用程序并重新打开它才能查看
  • 如何提高 iPhone 上的核心数据获取性能?

    Core data在iPhone上的表现绝对是惨不忍睹 索引是完全损坏还是只是一个糟糕的实现 我的核心数据存储 SQLite 后备存储 中有大约 21500 个单一类型的对象 这些对象在 UUID 上建立索引 该 UUID 是一个 NSSt
  • 在 xcode 4 中生成核心数据属性的代码

    在 xcode 3 中 数据模型构建器中有一个有用的功能 您可以突出显示实体中的某些属性 关系 右键单击 然后选择将方法和属性声明复制到剪贴板 如果您也想要 Objective c 2 0 属性声明 您可以选择 然后你可以将它们粘贴到你的
  • 举例说明为什么不建议将图像存储在 CoreData 中?

    这个问题已经被问过很多次了 我读到很多用户都说不建议将图像存储在数据库中 特别是在 CoreData 中 他们似乎都忽略了他们这样做的原因 甚至苹果文档也声明了这一点 每个人都指向那个方向 每次讨论都以这样的方式结束 好吧 你可以 但存储路
  • Xcode 在每次启动时修改当前的 CoreData 模型版本

    我正在使用 Xcode 4 6 来处理使用 CoreData 的项目 数据模型现在是版本13 并且使用轻量级迁移 我的问题 每次启动时 Xcode 似乎都会修改 PROJECT xcdatamodeld xccurrentversion 文
  • 核心数据推导表达式关键路径使用运算符作为中间组件

    我正在尝试编写一对多关系属性之和的派生表达式 我有一个商品和一个组 该商品有价格和总价 金额 价格 我想编写一个表达式 将该组的总价格作为其组成部分的总和 当我构建时出现错误 错误 属性配置错误 LAEItemGroup totalPric
  • iOS8 CoreData“使用未实现的初始化程序”

    我尝试运行我的应用程序时收到以下错误 致命错误 对类 rcresttest CatalogItem 使用未实现的初始化程序 init entity insertIntoManagedObjectContext 我可以通过将数据模型中的实体类

随机推荐

  • 为什么在 Javascript 模块模式中使用自执行匿名函数?

    在 JavaScript 的模块模式中 立即调用函数表达式 也称为自执行匿名函数 用作返回对象的自执行函数 自执行函数如何隐藏私有变量并仅公开返回的对象 为什么普通的 JavaScript 函数不会发生这种情况 那么在下面的迷你模块中 为什
  • Kotlin 中是否可以重写静态方法?

    你好想象一下我们有以下课程 Manager public static void doSth some logic 如何在 kotlin 中重写该方法 我已经厌倦使用 fun Manager doSth 但它应用于实例而不是静态类型 这样做
  • 有什么方法可以仅通过类型哈希值来查找 HashSet 吗?

    我有一个结构体 除其他数据外 还有一个独特的id struct Foo id u32 other data u32 我想使用id作为键并将其保留在结构内部 use std collections HashSet use std hash H
  • 访问iOS6 UIPageViewController创建的UIPageControl?

    我正在使用一个UIPageViewController导航设置为水平 过渡样式设置为滚动 在 InterfaceBuilder 中 并且没有脊柱 这给了我一个可爱的 UIPageControl 集成 现在我希望能够切换它是否显示 因为它下面
  • 在一组固定元素上生成特定秩的“随机”矩阵

    我想生成大小的矩阵mxn和排名r 元素来自指定的有限集 例如 0 1 or 1 2 3 4 5 我希望它们在某种非常宽松的意义上是 随机 的 即我想从算法中获得各种可能的输出 其分布与具有指定等级的元素集上的所有矩阵的分布大致相似 事实上
  • 未知软件异常0xe0434352

    While I am trying to launch my application I am getting the following error 检查了应用程序日志 但没有错误消息 这是由于任何框架版本或任何其他依赖关系吗 这是 CL
  • TPL DataFlow 与 BlockingCollection

    我明白 一个BlockingCollection最适合消费者 生产者模式 但是 我什么时候使用ActionBlock来自TPL数据流图书馆 我最初的理解是对于IO操作 保留BlockingCollection而 CPU 密集型操作最适合Ac
  • 删除前 16 个字节?

    我将如何从字节数组中删除多个字节 编辑 正如 nobugz 的评论 和 Reed Copsey 的答案 提到的 如果您实际上不需要结果作为字节数组 您应该考虑使用ArraySegment
  • 具有正确重力和单行的提示和文本视图

    我打开了一个错误 但我想知道是否有人遇到此问题并知道解决方法 如果您定义一个带有提示的文本视图 请给它正确的重力 android gravity right 然后如果您定义android singleLine true或android ma
  • 在 PyQtGraph 中返回鼠标光标坐标

    我是 PyQtGraph 的新手 想用它来快速可视化我的数据采集 以前我使用 matplotlib 其中重绘图形是我的瓶颈 转换到 PyQtGraph 后 我目前只缺少 matplotlib 的一项功能 即 返回鼠标光标的 x 坐标和 y
  • ASP.NET MVC 中的模拟

    我在内联网上有一个 MVC Web 应用程序 并且希望能够在我们的 FTP 服务器上创建文件以发送给外部合作伙伴 模拟代码使用 WindowsImpersonationContext System Security Principal Wi
  • vim:搜索替换所有可写缓冲区

    so 1GvG s g 可以替换整个缓冲区 但是 假设我加载了多个 vim 缓冲区 并且我想对所有可写的缓冲区执行 s 操作 有没有办法在 vim 中做到这一点 由于我无法发表评论 因此我将重复 Brian 所说的话并添加我的 2 美分 我
  • Nodejs以数组格式追加到json文件中

    我希望nodejs按以下格式附加JSON格式的所有数据 name admin message dfd datetime 2014 06 03 13 01 39 name admin message dfd datetime 2014 06
  • Google 地图 V3 圆圈与我创建的圆圈不匹配

    我使用 Google Maps V3 API 创建了一个圆圈 并尝试制作一个具有相同半径的标记圆圈 Problem 我创建的是倾斜的 而谷歌地图创建的是一个漂亮的圆形 什么地方出了错 谷歌地图 V3 圆码 Draw search circl
  • 在R中,使用gridBase在图中嵌入子图时如何防止pdf中的空白页

    正如所解释的here 很容易将绘图嵌入到现有绘图中 这要归功于gridBase 尽管两个图都使用 R 的基本图形系统 但是 将整个图保存为 pdf 时 第一页始终为空白 如何防止这种情况发生 这是一个例子 require gridBase
  • wix 服务依赖

    我的产品有多种功能 其中包括两项服务 我们将它们称为 ServiceA 和 ServiceB 这两个服务功能都是可选的 但是 如果在安装过程中同时选择了 ServiceA 和 ServiceB 我想在它们之间创建服务依赖关系 以便 Serv
  • 无法创建 AVD 确定已禁用

    我已经安装了 eclipse juno 4 2 1 Android SDK 我创建了一个 Android 应用程序 同时创建了新的 AVD 这Ok尽管我已经确定了它的所有规格 但按钮始终处于禁用状态 这是我输入的规格 我不知道为什么 有任何
  • 代码中的 ASP.NET Core appsettings.json 更新

    我目前正在使用 asp net core v1 1 进行项目 在我的 appsettings json 中我有 AppSettings AzureConnectionKey AzureContainerName NumberOfTicks
  • 正则表达式的复杂度是多少?

    对字符串执行正则表达式比较所需的字符串长度的复杂性是多少 答案取决于 正则表达式 的确切含义 经典的正则表达式可以是compiled into 确定性有限自动机可以匹配长度的字符串N in O N 时间 正则表达式语言的某些扩展使情况变得更
  • 核心数据和保留周期

    我有一个核心数据类 Game 它与另一个类 Player 具有一对多关系 这就是他们的标题的样子 property nonatomic retain NSSet players In Game h property nonatomic re