• 如何再分类中添加属性


     1 #import <UIKit/UIKit.h>
     2 
     3 typedef enum {
     4     HMImageDirectionLeft, // 左边 0
     5     HMImageDirectionRight,// 右边 1
     6 } HMImageDirection;
     7 
     8 
     9 @interface UIImage (Extension)
    10 // x值
    11 @property(nonatomic,assign) CGFloat x;
    12 // y值
    13 @property(nonatomic,assign) CGFloat y;
    14 // 移动方向
    15 @property(nonatomic,assign) HMImageDirection direction;
    16 
    17 @end
    #import "UIImage+Extension.h"
    #import <objc/runtime.h>
    @implementation UIImage (Extension)
    
    static char imageX;
    static char imageY;
    static char imageDirection;
    - (void)setX:(CGFloat)x{
        // objc_setAssociatedObject:利用该方法可以给一个分类添加属性
        objc_setAssociatedObject(self, &imageX, [NSString stringWithFormat:@"%f",x], OBJC_ASSOCIATION_COPY);
    }
    
    - (CGFloat)x {
        return [objc_getAssociatedObject(self, &imageX) floatValue];
    }
    
    - (void)setY:(CGFloat)y {
        // objc_setAssociatedObject:利用该方法可以给一个分类添加属性
        objc_setAssociatedObject(self, &imageY, [NSString stringWithFormat:@"%f",y], OBJC_ASSOCIATION_COPY);
    }
    
    - (CGFloat)y {
        return [objc_getAssociatedObject(self, &imageY) floatValue];
    }
    
    - (void)setDirection:(HMImageDirection)direction {
        // objc_setAssociatedObject:利用该方法可以给一个分类添加属性
        objc_setAssociatedObject(self, &imageDirection, [NSString stringWithFormat:@"%d",direction], OBJC_ASSOCIATION_COPY);
    }
    
    - (HMImageDirection)direction {
         return [objc_getAssociatedObject(self, &imageDirection) boolValue];
    }
    
    @end
  • 相关阅读:
    linux 防火墙管理
    自动化运维监控工具有哪些?常用的开源运维监控工具大全
    编程必备github代码仓库使用
    安全加密算法
    浅笑若风之高效工作流程
    jmeter压力测试工具使用
    ES扩容实战记录
    在5G+AI+CLCP下拉动互联网走向物联网
    设计模式之简单工厂模式
    设计模式之单例模式
  • 原文地址:https://www.cnblogs.com/neilHoIOS/p/4637476.html
Copyright © 2020-2023  润新知