iOS_Runtime4_动态添加属性
发布日期:2021-05-10 10:09:17 浏览次数:11 分类:精选文章

本文共 3065 字,大约阅读时间需要 10 分钟。

���������Objective-C���������������������

���Objective-C���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������UIImage������������������imageUrl���������������������������������������������


���������������������������

������������������������������������Objective-C���������API���������������������objc_setAssociatedObject���objc_getAssociatedObject������������������������������������������������������������

  • objc_setAssociatedObject

    ���������������������������������������������������������������������������

    • object: ������������������������
    • key: ������������������
    • value: ���������������������
    • policy: ������������������weak���retain���������
  • objc_getAssociatedObject

    ������������������������������������������������������������������������

    • object: ������������������
    • key: ������������������
  • ������������������������������������������������������������������������������������������������������������������


    ������������UIImage������imageUrl������

    1. ���categorias���������������

    ���.h������������������������������������������������

    @interface UIImage (Image)
    @property (nonatomic, copy) NSString *imageUrl;
    // ������������������
    @end

    2. ������getter���setter

    ���.m���������������setImageViewUrl���imageUrl���getter���

    @implementation UIImage (Image)
    #pragma mark - ������������������
    - (void)setImageUrl:(NSString *)imageUrl {
    objc_setAssociatedObject(self, "imageUrl", imageUrl, OBJC_ASSOCIATION_COPY_NONATOMIC);
    }
    - (NSString *)imageUrl {
    return objc_getAssociatedObject(self, "imageUrl");
    }
    @end

    3. ������������

    UIImage *image = [[UIImage alloc] init];
    image.imageUrl = @"http://example.com/image.png";

    ���������������������������

    • set������ (setImageUrl)

      ���������������image.imageUrl = @"..."���������������setImageUrl������������������������objc_setAssociatedObject���������������������������image���������imageUrl���������������������

    • get������ (imageUrl)

      ������������image.imageUrl���������������imageUrl���������������objc_getAssociatedObject������������������������������


    ���������������������

    ���������������������������������������������������������������������

    • OBJC_ASSOCIATION_ASSIGN

      ������������������������release���retain���������

    • OBJC_ASSOCIATION_RETAIN_NONATOMIC

      ������������������retain������������������������������������������������

    • OBJC_ASSOCIATION_COPY_NONATOMIC

      ������������������copy������������������������������������������������������

    • OBJC_ASSOCIATION_RETAIN

      ������������������retain���������������������������

    • OBJC_ASSOCIATION_COPY

      ������������������copy���������������������������


    ������

    ���������������Objective-C������������������������������������������������������������������������������������������������������������������objc_setAssociatedObject���objc_getAssociatedObject���������API������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

    上一篇:iOS_Runtime5_消息转发
    下一篇:iOS_Runtime3_动态添加方法

    发表评论

    最新留言

    做的很好,不错不错
    [***.243.131.199]2025年04月19日 19时47分50秒