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

时间:2017-05-07 16:52:58

标签: objective-c swift reflection swift-extensions

我有一个用Objective-C编写并使用figure; HalfFilledCircleL(0,0,10,300, 'r'); xlim([-12 12]);ylim([-12 12]); az= -90; %azimuth, az, is the horizontal rotation about the z axis as measured in degrees from the negative y-axis. Positive values indicate counterclockwise rotation el= 90; % vertical elevation of the view point in degrees view(az,el); figure; FilledCircle2(0,0,10,300, 'y', 'r'); xlim([-12 12]);ylim([-12 12]); .m文件的库。

我是否可以为该类编写扩展方法并访问仅在.h文件中定义但未在.m文件中定义的私有属性?

我尝试了.h,但我只得到了

.valueForKey

所有类型都为payload_data_0 payload_data_1 payload_data_2 instance_type

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

不,技术上你不能。文档非常清楚:

  

扩展可以添加新的计算属性,但不能添加存储的属性,也不能将属性观察器添加到现有属性。

如果您需要将其用于测试目的,请考虑将私有属性声明移动到单独的头文件(如MyClass + Test.h),并将其添加到桥接头中。但是猜猜看,这使得这些属性无论如何都是公开的。不是推荐的解决方案。