美文网首页
12.1类扩展

12.1类扩展

作者: ChaosHeart | 来源:发表于2020-10-09 09:16 被阅读0次

    1.类扩展

    可以添加属性和方法,在编译时写入ro数据段中

    (1)找到read_images()方法,加载镜像


    截屏2020-09-29 17.04.45.png

    (2)在此处打个断点,查看ro里面的数据


    截屏2020-09-29 17.05.00.png
    截屏2020-09-29 17.05.11.png
    截屏2020-09-29 17.05.38.png
    截屏2020-09-29 17.05.49.png
    截屏2020-09-29 17.06.02.png

    (3)可以看到此时ro里面可以找到方extM_method方法和nName属性,证明类扩展在编译时就执行了,将数据写入了ro中.

    2.实例

    类扩展:

    #import <AppKit/AppKit.h>
    #import "LGPerson.h"
    
    NS_ASSUME_NONNULL_BEGIN
    
    @interface LGPerson ()
    @property (nonatomic, copy) NSString *ext_name;
    @property (nonatomic, copy) NSString *ext_subject;
    
    - (void)extH_method;
    @end
    
    NS_ASSUME_NONNULL_END
    
    

    类.h文件:

    #import <Foundation/Foundation.h>
    
    NS_ASSUME_NONNULL_BEGIN
    
    @interface LGPerson : NSObject
    @property (nonatomic, copy) NSString *name;
    @end
    
    NS_ASSUME_NONNULL_END
    
    

    类.m文件:

    #import "LGPerson.h"
    #import "LGPerson+LGExtension.h"
    
    @interface LGPerson ()
    @property (nonatomic, copy) NSString *mName;
    
    - (void)extM_method;
    
    @end
    
    @implementation LGPerson
    
    + (void)load{
        NSLog(@"%s",__func__);
    }
    
    - (void)extM_method{
        NSLog(@"%s",__func__);
    }
    
    - (void)extH_method{
        NSLog(@"%s",__func__);
    }
    
    @end
    

    3.注意

    创建了类扩展以后,要将类扩展引入类中


    截屏2020-09-29 17.08.58.png

    相关文章

      网友评论

          本文标题:12.1类扩展

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