美文网首页
OC中子类如何修改父类的一个readOnly属性

OC中子类如何修改父类的一个readOnly属性

作者: 传说中的汽水枪 | 来源:发表于2018-12-21 18:26 被阅读7次

    AFNetworking中AFMultipartBodyStream的类继承关系图如下:

    image.png

    现在想在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获取到对象属性的setXXXgetXXX方法(iOS没有真正意义上的私有函数)。

    相关文章

      网友评论

          本文标题:OC中子类如何修改父类的一个readOnly属性

          本文链接:https://www.haomeiwen.com/subject/gpjvkqtx.html