zoukankan      html  css  js  c++  java
  • 为分类添加属性

    #import <objc/runtime.h>

    1.先添加属性,但是不会动态生成带下划线的属性

    @property (nonatomic, assign) NSInteger index;

    @property (nonatomic, copy) NSString *loginPwd;

    @property (nonatomic , copy) void (^indexBlock)(NSInteger index);

    2.

    1>.如果是基本数据类型

    static char strKey = 'm';

    - (NSInteger)index{

        return [objc_getAssociatedObject(self, &strKey) intValue];

    }

    - (void)setIndex:(NSInteger)index{

        return objc_setAssociatedObject(self, &strKey, @(index), OBJC_ASSOCIATION_ASSIGN);

    }

    2>.如果是字符串,自定义对象

    static void *str = &str;

    -(void)setLoginPwd:(NSString *)loginPwd{

        return objc_setAssociatedObject(self, & str, loginPwd, OBJC_ASSOCIATION_COPY);

    }

    - (NSString *)loginPwd{

        return objc_getAssociatedObject(self, & str);

    }

    3>.如果是block类型,类似于字符串类型

    static void *strKey3 = &strKey3;

    -(void)setIndexBlock:(void (^)(NSInteger))indexBlock{

        return objc_setAssociatedObject(self, & strKey3, indexBlock, OBJC_ASSOCIATION_COPY);

    }

    -(void (^)(NSInteger))indexBlock{

        return objc_getAssociatedObject(self, & strKey3);

     }

  • 相关阅读:
    UITableview
    UIscrollview
    UITextField(详细设置)
    iOS开发UI篇—Quartz2D使用(矩阵操作)
    iOS开发UI篇—Quartz2D使用(图形上下文栈)
    类的sizeof
    Implement strStr()
    KMP很清楚的一篇解释
    Best Time to Buy and Sell Stock II
    Triangle
  • 原文地址:https://www.cnblogs.com/chaoyueME/p/5916091.html
Copyright © 2011-2022 走看看