问题标签 [nsmanagedobjectmodel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1390 浏览

objective-c - 不可接受的一对一关系的值类型。所需类型 = (null);

所以我刚刚将我的核心数据模型转换为代码,以便它可以轻松地放入静态库中。不幸的是,它不是一个平滑的转换。

尝试插入新玩家作为另一个名为 gameToPlayer 的类的关系时出现此错误。

这是 GameToPlayer 的创建:

和 Player 创建:

以及发生崩溃的地方(抱歉,所有 NSLogs 都在使用它们来追踪它)它在我们设置播放器的地方停止:

现在我实际上认为我知道问题所在。在我的 ManagedObjectModel 的自定义初始化中。gameToPlayerEntity 在 playerEntity 之前创建。所以当 gameToPlayerEntity 创建时 playerEntity 实际上是 NULL。但是我不能简单地重新排序,使它们成为属性,或做任何事情来修复它,因为如果我更改文件中的任何内容,它似乎不再能够映射现有数据库......

而且我在文档中找不到任何地方,它显示了如何对我希望成为问题的 xml 模型之类的代码模型进行版本化。任何帮助或提示表示赞赏。只是试图掌握如何使其正常工作。

更新

值得一提的是,在此转换之前,我已经在使用轻量级迁移,并且是数据库的第 4 次迭代。

在此处输入图像描述

更新 2

我已经能够通过完全重新开始来让它工作。而不是试图从已发布的内容继续前进。一切都已转换为属性,以便每个实体在需要时仅创建一次。这可以作为从视觉模型到代码模型的转换。但是,当这个模型不可避免地发生变化时,我肯定需要了解未来的版本控制。版本控制是这个问题的根源。因此,如果有人可以阐明如何在不使用 xcode 界面的情况下进行版本控制,我很想听听您的想法。

0 投票
2 回答
1192 浏览

iphone - 重新排列表格视图单元格后如何更新核心数据记录

我知道之前有人问过这个问题,但是,我仍然对如何在 Core Data 项目中使用 UITableView 单元格实现重新排序感到困惑。下面提到的代码我在我的项目中用于重新排列 TableView 单元格。重新排列后的单元格在核心数据中不受影响。

0 投票
1 回答
719 浏览

iphone - 如何识别核心数据托管对象模型——哈希?

是否有一种方法可以为核心数据托管对象模型获取唯一哈希,以便我可以查看核心数据存储是否与特定模型保持同步?我正在构建一个核心数据同步系统,并且我想确保正在同步的核心数据存储使用相同版本的托管对象模型。

0 投票
1 回答
269 浏览

core-data - 保存对象时获取 NSManagedObjectId

将对象保存到 Core-Data 时如何检索 NSManagedObjectID?

我有一系列对象要保存到 Core-Data,并且我需要将每个对象都保存在另一个线程上。

然后我想将此数组传递给主线程并获取 ID 数组的对象。

0 投票
1 回答
768 浏览

ios - NSManagedObjectModel - 动态创建模型

谁能指出我在 Xcode 中动态构建核心数据模型的教程?我发现的所有教程都是基于静态设计的,但苹果文档说可以以编程方式构建模型。遗憾的是,苹果文档集中没有这方面的例子。

0 投票
4 回答
7858 浏览

ios - 如何打开现有的 .mom 文件,或者有什么方法可以查看现有 .mom 文件的结构

我已经下载了 iOS 源代码的副本,并且捆绑包中有一个 .mom 文件。我只知道它是 NSManagedObjectModel 的“产品”。我想知道有什么方法可以探索文件中的实体,或者是否有任何代码片段来解析其结构。谢谢!

0 投票
1 回答
99 浏览

objective-c - 核心数据模型子类化(不是 NSManagedObject 子类化)

我想知道是否有人知道是否可以对核心数据模型进行子类化。

就我而言,我正在开发一个我想在 2 个项目中使用的库。这两个项目都有几乎相同的数据对象,我想外包到库中,因为这个库中有一些类和方法需要知道这些实体的存在。

对此有何想法?

0 投票
1 回答
422 浏览

ios - 在 Core Data 中正确使用 NSManagedObjects

我目前正在深入研究 Core Data,并且对使用 Core Data NSManagedObject 模型有些困惑。

例如,我会有一个“联系人”实体,它具有名字、姓氏、地址等属性......

我想了解的是,如果可能的话,是否有任何“最佳实践”可以将 NSManagedObject 用作​​常规 NSObjects。

例如,我有一个服务器以 JSON 格式返回一些联系人数据,但我想将它作为某种 NSObject 返回,这样它就有自己的属性、方法等......但另一方面,这样做会很愚蠢创建 2 个类来表示联系实体 - 一个用于处理我想从服务器数据 (NSObject) 提供经过清理的对象的情况,另一个用于处理核心数据 (NSManagedObject) 的情况。有什么方法可以将单个对象用于两个目的?在这种情况下,最佳做法是什么?

编辑: 这是我遇到的一般问题:http: //pastebin.com/WHWNqj2f

0 投票
2 回答
3874 浏览

core-data - 托管对象模型和持久对象存储有什么区别?

来自苹果 CoreData 框架文档,

托管对象模型:模型允许 Core Data 从持久存储中的记录映射到您在应用程序中使用的托管对象。参考这里

持久对象存储:应用程序中的对象与持久存储中的记录之间的持久对象存储映射。参考这里

从这些描述中,两者的含义相同,将持久存储记录映射到托管对象。

我想知道托管对象模型和持久对象存储之间的独特区别是什么。

0 投票
1 回答
240 浏览

ios - 核心数据保存模型不工作 iOS

我创建了一个核心数据模型,在尝试保存记录时,我收到以下控制台消息:Unresolved error Error Domain=NSCocoaErrorDomain Code=134100 "The operation couldn’t be completed. (Cocoa error 134100.)" UserInfo=0x8b3bc50 {metadata={ NSPersistenceFrameworkVersion = 479; NSStoreModelVersionHashes = { }; NSStoreModelVersionHashesVersion = 3; NSStoreModelVersionIdentifiers = ( "" ); NSStoreType = SQLite; NSStoreUUID = "F49C0E04-9778-46EC-A9C7-9A045CD915D8"; "_NSAutoVacuumLevel" = 2; }, reason=The model used to open the store is incompatible with the one used to create the store}, { metadata = { NSPersistenceFrameworkVersion = 479; NSStoreModelVersionHashes = { }; NSStoreModelVersionHashesVersion = 3; NSStoreModelVersionIdentifiers = ( "" ); NSStoreType = SQLite; NSStoreUUID = "F49C0E04-9778-46EC-A9C7-9A045CD915D8"; "_NSAutoVacuumLevel" = 2; }; reason = "The model used to open the store is incompatible with the one used to create the store"; }

我不知道从哪里开始调试它请有人告诉我问题可能出在哪里,因为我是核心数据的新手。