AFNetworking中`AFMultipartBodyStream`的类继承关系图如下:
现在想在`AFMultipartBodyStream`类中修改`streamStatus`或者`streamError`的话该怎么办。
AFNetworking提供了一种方法:
是给NSStream添加一个类扩展,分类的内容如下:
@interface NSStream ()@property (readwrite) NSStreamStatus streamStatus;@property (readwrite, copy) NSError *streamError;@end
这样就可以设置`streamStatus`或者`streamError`的值了。
这也就是猜测`NSStream`类关于这两个属性的实现应该就是在.h文件中是`readonly`,而在.m文件中(类扩展)是`readwrite`的。
所以可以在子类中给父类添加类扩展来实现这种修改`readonly`属性值。
前提是可以用runtime获取到对象属性的`setXXX`和`getXXX`方法(iOS没有真正意义上的私有函数)。