【问题标题】:How to reveal private struct layout in Objective-C?如何在 Objective-C 中显示私有结构布局?
【发布时间】:2021-01-13 15:10:21
【问题描述】:

问题从我获取线程 ID 的问题开始。

我在另一个答案NSThread number on iOS? 中得到答案。

通过使用KVC,我们可以得到一个线程ID

[[NSThread currentThread] valueForKeyPath:@"private.seqNum"]

我的困惑是如何找出对象的内部 ivar,甚至是这个内部 ivar 中的私有结构布局。

【问题讨论】:

  • 如果它真的是一个结构体而不是一个 Obj-C 类,那么你无能为力。

标签: ios objective-c swift cocoa


【解决方案1】:

为此,您需要使用 Objective-C 运行时 和相关的东西,例如 class_copyIvarList。在手册中查找它,您想要的可能会在该部分中。

【讨论】:

  • 是的,但是 OP 提到了 object's internal ivar 所以我认为它是 object,它在内部是一个 struct afaik 无论如何。
  • 实际上,我使用 Objective-C Runtime 来获取一个名为 '_private' 的 ivar,然后我无法再找出 '_private' 中的内容。 @skaak
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-10
  • 2014-11-28
  • 1970-01-01
  • 2011-02-14
相关资源
最近更新 更多