zoukankan      html  css  js  c++  java
  • 如何再分类中添加属性

     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
  • 相关阅读:
    大数据学习笔记01
    寻址方式
    指令格式
    虚拟存储器
    高速缓冲存储器Cache
    双端口RAM和多模块存储器
    主存储器与CPU的连接
    半导体存储器
    存储系统——基本概念
    算术逻辑单元
  • 原文地址:https://www.cnblogs.com/neilHoIOS/p/4637476.html
Copyright © 2011-2022 走看看