问题标签 [xcdatamodel]

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 回答
746 浏览

ios - xcdatamodel 中的错误

我在 Xcode 中的 xcdatamodel 文件似乎表现得很奇怪。

当我第一次构建我的项目时,它给出了一个错误

但是当我再次运行它时,它运行没有错误。然后过了一段时间,当我再次构建时,错误再次弹出并再次消失。有时我会收到一条不同的错误消息,上面写着

无法删除现有模型

有任何想法吗 ??

0 投票
2 回答
1780 浏览

ios - 如何重新创建 xcdatamodeld

我正在维护一个已经在 AppStore 上运行了几个月的应用程序。我的应用程序使用 Core Data,但不知何故,我设法丢失了所有以前版本的 xcdatamodel。

我希望执行轻量级迁移。我需要做的就是为我的一个实体添加一个属性。因此,我遵循了创建模型版本的正确步骤。

显然,我修改了原来的 xcdatamodel。因此,当我测试迁移时,它失败并显示错误代码 = 134130“找不到源存储模型”。由于在设备/模拟器上没有 sqlite 文件时应用程序运行良好,因此我得出的结论是原始 xcdatamodel 已修改

假设到目前为止我的逻辑成立,我如何创建一个 xcdatamodel 来匹配我用户设备上的 sqlite 文件。他们不能接受丢失数据。

谢谢你。

0 投票
1 回答
828 浏览

ios - 可以显示或更改核心数据模型所基于的模型吗?

我想看看我的每个模型都基于什么模型,并可能改变它。我无法在 Xcode 中找到任何地方可以做到这一点。似乎一旦您创建了一个新的模型版本,并选择了它所基于的模型(使用“编辑器/添加模型版本...”并使用“基于模型”下拉菜单选择以前的模型),就没有办法查看您的选择或更改它。

.xcdatamodeld 和 .xcdatamodel 文件是包,您可以通过右键单击/“显示包内容”来检查它们。.xcdatamodel 文件包含一个名为“contents”的 XML 文件,但似乎没有以前模型的版本:

我还查看了项目的 .xcodeproj 文件(也是一个包),发现 project.pbxproj 文件包含以下内容:

同样,没有以前的版本信息,除非它在那些十六进制字符串中,但是 Xcode / Project Navigation 中 .xcdatamodel 文件的顺序似乎是由“children”参数决定的。

我还发现重命名模型版本会破坏以前的版本连接(这表明它存储在某个地方,而不仅仅是版本的顺序),如果这样做,initWithContentsOfURL 将返回一个 nil 模型:

因此,据我所知,一旦创建模型,您就无法查看或更改模型所基于的模型。如果您需要清理模型层次结构,您必须有效地重新开始并重新创建每个需要的版本(至少您可以从旧模型中复制实体,这样您就不会完全从头开始)。

0 投票
0 回答
313 浏览

ios - Xcode 4.2 与 iOS SDK 6.0,编译 .xcdatamodeld 文件时出错

我使用带有 xcode 4.2 的雪豹将 iOS 6 SDK 文件从 xcode 4.5 (dmg) 复制到我的计算机上:

sudo cp -R /Volumes/Xcode/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/ sudo cp -R / Volumes/Xcode/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.0.sdk /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/ sudo cp -R /Volumes/Xcode/Xcode .app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/6.0\ (10A403) /Developer/Platforms/iPhoneOS.platform/DeviceSupport/ sudo rm -f /Developer/Platforms/iPhoneOS.platform/DeviceSupport/Latest cd /Developer /Platforms/iPhoneOS.platform/DeviceSupport/sudo ln -s ./6.0\ (10A403) ./Latest

我在 xcode 4.2 中打开了我的 iPad 项目,这里显示一个错误,上面写着:

“未分类。路径'/User/desarrollo/Library/Developer/Xcode/DerivedData/.../Build/Products/Debug-iphonesimulator/...app/...momd/...mom 的数据模型编译失败'"

xcdatamodeld 参考和文件存在于项目和文件夹中。

你能帮我解决这个问题吗?

我认为这不是与 iOS 6 SDK 相关的问题,因为我一直在尝试以 iOS 5.1 作为目标来清理和构建项目,但它显示了相同的错误。

提前致谢。

0 投票
1 回答
430 浏览

c# - 在 C# 中保存 XML 文件而不使用 XCData

我在 C# 上有一个这样的字符串:

我想使用 Xlinq 保存一个 xml 文件:

当我阅读我的 xml 文件时,会出现:

但我不想<![CDATA[

我怎样才能得到这个结果?

0 投票
2 回答
38 浏览

core-data - 在 Core Data 中应该使用什么类型来存储年份属性?

我想到了Integer 16,因为很容易计算年数,这取决于它。

String适合搜索,例如。很容易从 1978 中找到 78 年作为子字符串。也可以将年份保留为Date.

最佳做法是什么?

0 投票
3 回答
1859 浏览

ios - 在 Xcode 数据模型编辑器中的配置之间移动实体

我目前正在开发一个应用程序,希望它使用 Core Data 从 2 个 sqlite 文件中存储/检索数据(目前它只使用 1 个)。我意识到要做到这一点,我必须在我已经完成的 Xcode 的核心数据模型编辑器中创建另一个配置。现在,我正在尝试将实体从我当前的配置移动到新的配置中,但我找不到这样做的方法。我正在使用 Xcode 4.5.1 版。

我这样做对吗?如何在配置之间移动移动实体?

任何帮助深表感谢 :)

0 投票
0 回答
183 浏览

iphone - xcdatamodel 未在设备上编译

我的项目中包含我的 App.xcdatamodel 文件。在为模拟器编译时,会生成 App.mom 文件,我的核心数据管理器会找到并运行它。设备编译运行时,不会生成App.mom文件。

xcdatamodel 包含在 Target Membership 中(选中复选框),xcdatamodel 文件包含在 App 目标的“Compile Sources”中。

我有另一个用于旧版本数据库的 xcdatamodel。它包含在 Target Membership 和“Compile Sources”下。这个旧版本的数据库运行良好,模拟器和设备运行始终成功生成 .mom 文件。

0 投票
1 回答
822 浏览

core-data - 为 CoreData 生成的类添加前缀

在我的 XCode 项目中,我有两个数据模型 (.xcdatamodel),并希望为每个模型中的实体生成 NSManagedObject 派生类。问题是两个模型都包含同名的实体。如何使用前缀生成这些类,以避免由于类似于此类似问题中描述的名称冲突而导致的链接错误?

0 投票
1 回答
114 浏览

ios - Loading a core data database without having the data model?

Is it possible to load an existing core data database into an app and access it like a normal core data store if I don't have the corresponding .xcdatamodeld file? Is there a possibility to rebuild a fitting .xcdatamodeld from the database? Either per hand or programmatically? Thanks for your help