从核心数据中检索 UUID 并设置 UUID 变量不起作用

Posted

技术标签:

【中文标题】从核心数据中检索 UUID 并设置 UUID 变量不起作用【英文标题】:Retrieve UUID from core data and set UUID variable not working 【发布时间】:2020-01-20 07:28:15 【问题描述】:

我有一个会话变量作为 UUID 字段保存在核心数据表中。我对此很满意,它保存正确,因为我可以如下所示打印它。我的问题是我无法设置我的 UUID 变量,它在我的调试窗口中以某种方式返回空白并且不确定我做错了什么。

从我的表格视图中,我选择一行并成功检索核心数据变量,这些变量都是 var = String():

PassNameSurname     = userAccountArray[indexPath.row].nameSurname!
PassCompanyOffice   = userAccountArray[indexPath.row].companyOffice!
PassEmployNo        = userAccountArray[indexPath.row].employeeNumber!
PassAccountPin      = userAccountArray[indexPath.row].accountPin!

我的会话变量设置为 UUID() 但在我的调试窗口中返回空白。我已经尝试了以下每一行,打印确实有效,所以我知道核心数据字段有一个值:

PassSessionID = UUID(uuidString: userAccountArray[indexPath.row].sessionID.uuidString)!

PassSessionID = userAccountArray[indexPath.row].sessionID

print(userAccountArray[indexPath.row].sessionID)

调试中的 PassSessionID 为空。

【问题讨论】:

【参考方案1】:

NSManagedObject 子类具有在 Xcode 调试器变量视图中未解析的 @dynamic 属性。还有更多的极端情况:

Xcode debugger sometimes doesn't display variable values? Xcode debugger doesn't print objects and shows nil, when they aren't

解决方案

在 Xcode 调试器控制台中使用 po print(property) 在变量视图中选择实体,然后从上下文菜单中选择“将描述打印到控制台”,您将获得实体的文本转储。

额外信息

Xcode 调试工具集成在整个 Xcode 主窗口中,但主要位于调试区域、调试导航器、断点导航器和源代码编辑器中。调试 UI 是动态的;它会在您构建和运行应用程序时重新配置。要自定义 Xcode 如何显示部分 UI,请选择 Xcode Preferences > Behaviors。

下图显示了 Xcode 调试器的默认布局,其中应用在断点处暂停。

【讨论】:

以上是关于从核心数据中检索 UUID 并设置 UUID 变量不起作用的主要内容,如果未能解决你的问题,请参考以下文章

iOS 蓝牙检索外设导致 EXC_BAD_ACCESS 崩溃

在核心数据中存储 UUID

oracle触发器设置uuid变量

如何修复“UUID 类型的方法参数缺少 URI 模板变量 'uuid'”?

mysql创建数据库时怎么将主键设置为UUID,建表语句怎么写

什么是UUID,Java中怎么产生UUID