Swift 从 .m 文件读取私有 属性

Swift read private property from a .m file

我有一个用 Objective-C 编写并使用 .m.h 文件的库。

我是否可以为 class 编写一个扩展方法并访问仅在 .m 文件中定义而未在.h 文件?

我试过 .valueForKey 但我只得到

payload_data_0
payload_data_1
payload_data_2
instance_type

它们都是 Builtin.RawPointer.

类型

没有。您访问它的唯一方法是在 header 中公开定义它。

不,从技术上讲你不能。文档对此非常清楚:

Extensions can add new computed properties, but they cannot add stored properties, or add property observers to existing properties.

如果您出于测试目的需要它,请考虑将私有 属性 声明移至单独的 header 文件,例如 MyClass+Test.h ,并将其添加到桥接 header。但是你猜怎么着,这使得这些属性 public 无论如何。不是推荐的解决方案。