为什么实体不能具有具有一对一强制逆关系的唯一性约束?

2023-12-26

为什么实体不能具有具有一对一强制逆关系的唯一性约束? 有两个实体:

  • Person

属性:名称

关系:部门(一对一,非可选)

  • 部门

属性:标题(唯一约束)

关系:人(对多,可选)

模型无法在 iOS 9、XCode 7.0.1 中编译,并出现错误配置的实体错误:

实体配置错误:实体部门不能具有唯一性 约束和一对一强制逆关系 人员.部门

Update:问题在 XCode 8.3.1 中仍然相关。


简短回答:

根本问题很可能是由 sqlite 标准引起的。对此我不确定。然而,这很可能是因为 sqlite 的限制。我在互联网上发现了一些帖子,其中人们在一张表上遇到了多个约束的问题,这很可能就是两表解决方法起作用的原因。

长答案:

已经很晚了,但我希望它能有所帮助。

当您的实体具有唯一约束和强制关系时,就会发生这种情况。我猜这是因为iOS 9.0中添加了独特的约束行为。不过,您可以通过两种方式解决这个问题:

您删除唯一约束或使关系可选。您可以在代码中处理可选关系。但这不会是一个好的解决方案。

OR

您可以使用解决方法。你可以两者兼得。您可以创建具有唯一约束的超类。然而,这也不会没有问题。

让我们拥有三个实体。 A、B 和 C。

A 是您的超类,B 是 A 的子类,C 也是 A 的子类。 A 对其属性 PrimaryKey 有唯一约束。保存B和C的实例时,B和C不能具有相同的primaryKey。因为 CoreData 会将两者作为 A 进行管理。

您可以将 A 更改为具有两个属性:

  • int:originalPrimaryKey(无唯一约束)
  • string:primaryKey(唯一约束)

您现在可以将primaryKeys映射到originalPrimaryKey,并且在设置originalPrimaryKey时,您可以将字符串primaryKey属性设置为CLASS_NAME.{originalPrimaryKey}。这将使您能够实现您所期望的行为。但您必须为 PrimaryKeys 添加解决方法。

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

为什么实体不能具有具有一对一强制逆关系的唯一性约束? 的相关文章

  • iOS 14.4.2 似乎禁用了视频自动播放

    我注意到 随着 iOS 14 4 2 最近的更新 我所有的自动播放视频都停止了自动播放 在以前的版本上一切都运行得很好 这适用于 HTML 5 视频 以及嵌入了player js 的 vimeo 我检查了其他使用 HTML 5 的网站 这些
  • 当尝试为我们分配 IP 而不是 localhost 或 home 时,NSURLSession 失败

    我有一台本地运行的服务器 我的IP是192 168 0 98 并且一直在尝试使用一些网络代码来访问它 最初这是通过 AFNetworking 完成的 但我现在用NSURLSession像这样 NSURLSession session NSU
  • 核心数据是否始终将返回对象视为错误?

    在下面的代码中 我显式地将 returnObjectsasFaults 设置为 false 然后在请求之后我立即检查对象是否有故障 NSAssert 失败 也许是因为该对象是 imageBlob 也许我错过了什么 我只是想确定一下 这是一个
  • iOS 7 上的 Web 应用程序中的 HTTP 基本身份验证已损坏?

    我正在对一个简单的应用程序使用基本身份验证 但它在 iOS 7 上的 Web 应用程序模式下停止工作 它在 Safari 中工作 在 iOS 6 上工作 无论是在 Safari 中还是作为独立的 Web 应用程序 但是 迁移到 iOS 7
  • Firebase数据库在批准后保存数据

    我在 iOS 应用程序上使用 firebase 数据库 我正在快速写作 我正在使用 发送 按钮在我的 firebaseDatabase 上写入数据 例如文本字段和标签值 有什么方法可以接受或拒绝我的数据库中的数据吗 我的意思是 如果用户向文
  • 从 Firebase Swift 检索信息的好方法

    我和我的朋友正在 swift 上开发一个 IOS 项目 并集成了 新的 Firebase 我们能够写入 Firebase 数据库 但是我们在检索数据时遇到了问题 我们有一个 tableView 控制器 我们希望从 Firebase 数据库填
  • 使用 React Native 隐藏在 TabBarIOS 后面的内容

    我正在使用 React Native 构建一个 iOS 应用程序 并正在实现一个TabBarIOS 选项卡上的内容似乎流到后面并被栏遮挡 在 xcode 中 我只是取消选中 扩展边缘 框 但不知道如何使用 React Native 来做到这
  • iOS 64 位 @try {... } @catch {...} 不起作用

    我有一个非常特殊的问题 最近 我向我的 iOS 项目 arm64 添加了 64 位支持 从那时起 我开始收到内部代码段未捕获的异常 try catch 我使用 Crashlytics 进行崩溃报告 我设法在应用程序中的任何位置使用以下代码行
  • 解决听写/自定义文本视图错误

    我有一个实现的视图UIKeyInput并覆盖shouldBecomeFirstResponder回来YES 点击此视图时 键盘会弹出 如果用户点击听写按钮 按下 完成 然后尝试关闭键盘 应用程序将崩溃并显示 Fatal Exception
  • ios - navigationItem.titleView 更新时闪烁

    我有一个UIView 拿着一个UIButton 设置为我的navigationItem titleView 当我更新此按钮的文本时 它会短暂闪烁 消失并随新文本重新出现 无论如何 当它改变时 是否可以保持它可见 那么 如果我更改 2015
  • ios-使用 firebase 发送通知

    我正在尝试创建带有通知的应用程序 通知必须从 php 文件发送到 firebase 然后发送到设备 起初 我尝试使用 firebase 控制台发送 效果完美 但是当我尝试使用 php 发送通知时 我遇到了问题 显示已成功发送 但我没有收到任
  • 多对多关系中的 KVO 对象属性

    我有一个核心数据对多关系 由父 gt 子组成 我想设置一个键值观察机制 以便当任何子对象上的属性 例如 firstName lastName 发生更改时 它会触发通知 使用标准 KVO 语法时 self parentObject addOb
  • 如何在 iOS 上删除配对的蓝牙设备?

    我希望我的应用程序可以删除配对的蓝牙设备 因为如果设备与 iPhone 配对 则该设备无法用于其他设备 我尝试了 CBCentralManager cancelPeripheralConnection 但它不起作用 他们仍然配对 或者还有其
  • AFNetworking 的 UICollectionView 异步下载错误

    您好 我正在使用目录列表创建 Uicollection 视图 点击单元格时必须下载 PDF 它在一个视图中完美运行 但在另一个视图中出现错误 thread 1 tid 0x4b2ce 0x000000018d14f9b8 CoreFound
  • ipatool 失败并出现异常:#

    将 Xcode 升级到 9 0 1 版本后 在我的项目之一中导出为 iPA 时 我遇到错误 ipatool 失败 出现异常 NoMethodError undefined method toolsPath for nil NilClass
  • 通过 NSDate 过滤 Realm 中的查询会抛出 NSInvalidArgumentException

    我到处寻找 甚至访问了一些带有永远不会消失的病毒警告消息的可疑网站 但我无法弄清楚这一点 我只是想过滤Results
  • 通过 HTTP 代理进行 iOS XMPP 聊天

    我有一个 iPhone 应用程序 可与 2 项服务配合使用 通过 http 使用 REST 服务 使用 AFNetworking 通过 TCP 进行 XMPP 聊天 使用 XMPPFrameworkhttps github com robb
  • 在 IOS 设备上制作动画时,2 个相互堆叠的动画元素会发生变化(z 索引位置)吗?

    JSFIDDLE http fiddle jshell net 6gdrQ 18 我有 2 个动画元素 一种是简单的旋转脚本 它像硬币一样旋转徽标的中间部分 另一个动画是中间部分翻转时您看到的徽标后面的粒子画布烟雾动画 我遇到的问题是画布烟
  • Swift 和 Objective-C 框架公开其内部结构

    我正在尝试将 Swift 添加到具有公共 私有和项目文件的现有 Objective C 框架中 为了让 Swift 能够访问项目文件 我添加了一个定义新模块的模块映射 例如MyFramework Internal 通过包含所有项目标题 如下
  • 记录使用 OpenAL 播放的样本

    我在 iOS 上使用 OpenAL 同时播放 9 个循环 为了使循环 100 同步 它们开始在不同的线程上运行 有关使用 OpenAL 记录正在播放的内容的任何指示 教程 如果我使用不同的线程 我会遇到录制问题吗 iOS 上的 OpenAL

随机推荐