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 无论如何。不是推荐的解决方案。
我有一个用 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 无论如何。不是推荐的解决方案。