如何阅读核心数据描述?

Posted

技术标签:

【中文标题】如何阅读核心数据描述?【英文标题】:How do I read Core Data descriptions? 【发布时间】:2015-05-10 15:33:27 【问题描述】:

我在调试核心数据时遇到问题。我有两个对象

<MyClass: 0x7f9eab6cc7e0> (entity: MyClass; id: 0xd000000000300000 <x-coredata://24C40E7B-ECD2-48C5-89A6-03F85727EC5A/MyClass/p12> ; data: )

<MyClass: 0x7f9eab672190> (entity: MyClass; id: 0xd000000000040000 <x-coredata://24C40E7B-ECD2-48C5-89A6-03F85727EC5A/MyClass/p1> ; data: )

这两个对象有不同的指针,但应该指向同一个Core Data Object。两者都有相同的&lt;x-coredata://24C40E7B-ECD2-48C5-89A6-03F85727EC5A/DBUser/&gt;,但 p12 和 p1 不同。这些线是什么意思?对于系统来说,它们应该是同一个对象,却是两个不同的对象。

我如何理解 Core Data 描述字符串告诉我的内容?

谢谢!

【问题讨论】:

我认为您尝试基于此格式调试问题的方向错误。究竟是什么问题?这两个对象是否在同一个上下文中? 【参考方案1】:

再挖一点之后,我找到了这些。 NSManagedObject 描述是这样符合的。

x-coredata://[Store UUID]/[Entity Name]/[Primary Key]

其中主键与数据库中的条目相关。我遇到的问题是获取错误的对象。

【讨论】:

【参考方案2】:

如果您使用 SQLite 持久化数据,则 p1 和 p12 直接与表中的数据行相关,这与说该记录的主键相同。

如果您了解如何使用终端访问 SQLite 存储,您将能够检索该实体的整个数据表,并查看您检索到的两条记录实际上位于第 1 行和第 12 行。

【讨论】:

以上是关于如何阅读核心数据描述?的主要内容,如果未能解决你的问题,请参考以下文章

从阅读Discuz的核心代码并给出注释的经历分析程序员该如何阅读代码?

阅读 GHC 核心

百度文库新一代文档阅读器!核心技术点全解析!

如何在核心数据中手动插入数据

mmdetection源码阅读笔记

阅读笔记4