为UIButton的category添加属性

UIButton+subTitle.h

#import <UIKit/UIKit.h>

#import <objc/runtime.h>

@interface UIButton (subTitle)

@property (nonatomic, copy) NSString *subTitle;

@property (nonatomic, strong) UIColor *foreColor;

//此处添加int类型属性不能使用,因为objc需要用id类型,此处留着以后修改

@property (nonatomic) int tagAdd;

@end

UIButton+subTitle.m

#import "UIButton+subTitle.h"

@implementation UIButton (subTitle)

static char oooo;

- (NSString *)subTitle{

    return objc_getAssociatedObject(self, @selector(subTitle));

}

- (void)setSubTitle:(NSString *)subTitle{

    [self setTitle:subTitle forState:UIControlStateNormal];

    objc_setAssociatedObject(self, @selector(subTitle), subTitle, OBJC_ASSOCIATION_COPY_NONATOMIC);

}

- (UIColor *)foreColor{

    return objc_getAssociatedObject(self, @selector(foreColor));

}

- (void)setForeColor:(UIColor *)foreColor{

    self.backgroundColor = foreColor;

    objc_setAssociatedObject(self, @selector(foreColor), foreColor, OBJC_ASSOCIATION_RETAIN_NONATOMIC);

}

- (void)setTagAdd:(int)tagAdd{

    objc_setAssociatedObject(self, &oooo, @(tagAdd), OBJC_ASSOCIATION_ASSIGN);

}

- (int)tagAdd{

    return (int)objc_getAssociatedObject(self, &oooo);

}

关联:objc_getAssociatedObject和objc_setAssociatedObject使用的更多相关文章

  1. ios 关联对象运用 objc_setAssociatedObject

    点按钮的时候,给alertView添加一个关联对象(被点击这个按钮), objc_setAssociatedObject(alert, &kRepresentedObject, sender, ...

  2. [Objective-C]关联(objc_setAssociatedObject、objc_getAssociatedObject、objc_removeAssociatedObjects)

    关联 关联是指把两个对象相互关联起来,使得其中的一个对象作为另外一个对象的一部分.    关联特性只有在Mac OS X V10.6以及以后的版本上才是可用的. 在类的定义之外为类增加额外的存储空间 ...

  3. [Objective-C]关联(objc_setAssociatedObject、objc_getAssociatedObject、objc_removeAssociatedObjects)(转)

    转载自:http://blog.csdn.net/onlyou930/article/details/9299169 分类: Objective-C2013-07-11 11:54 3420人阅读 评 ...

  4. iOS - Objective-C 关联(objc_setAssociatedObject、objc_getAssociatedObject、objc_removeAssociatedObjects)

    关联是指把两个对象相互关联起来,使得其中的一个对象作为另外一个对象的一部分. 关联特性只有在Mac OS X V10.6以及以后的版本上才是可用的. 在类的定义之外为类增加额外的存储空间 使用关联,我 ...

  5. 【原】objc_setAssociatedObject和objc_getAssociatedObject

    本文转载请注明出处--polobymulberry-博客园 两个函数名称中都有associate,意思是关联,这里的关联表示的是一种 从属关系,即有一个关联者和被关联者,我们说NSArray的对象ar ...

  6. 对象关联(associated objects)

    category与associative作为objective-c的扩展机制的两个特性,category即类型,可以通过它来扩展方法:associative,可以通过它来扩展属性:在iOS开发中,可能 ...

  7. 运行时---关联Associated

    关联:指把两个对象相互关联起来,使得其中的一个对象作为另外一个对象的一部分   一.在类的定义之外为类增加额外的存储空间        使用关联,我们可以不用修改类的定义而为其对象增加存储空间.这在我 ...

  8. objective-c 中的关联介绍

    objective-c 中的关联介绍 转载请注明CSDN博客上的出处: http://blog.csdn.net/daiyibo123/article/details/46471993 如何设置关联 ...

  9. objc_setAssociatedObject 1

    [Objective-C]关联(objc_setAssociatedObject.objc_getAssociatedObject.objc_removeAssociatedObjects) 标签:  ...

随机推荐

  1. JS-取出字符串中重复次数最多的字符并输出

    /** 取出字符串中重复字数最多的字符 */ var words = 'sdfghjkfastgbyhnvdstyaujskgfdfhlaa'; //创建字符串 var word, //单个字符 le ...

  2. LinearLayout嵌套

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...

  3. An unexpected error has occurred" error appears when you try to create a SharePoint Enterprise Search Center on a Site Collection

    The Enterprise Search Center requires that the Publishing feature be enabled. To enable the Publishi ...

  4. CentOS6.5上编译OpenJDK7源码

    本文地址:http://www.cnblogs.com/wuyudong/p/build-openjdk7.html,转载请注明源地址. 采用开源的OpenJDK版本,获取其源码的方式有两种: 通Me ...

  5. 用二进制大对象类型Blob实现图片入库与出库的操作

    package readclobDemo.bao; import java.io.FileInputStream; import java.io.FileNotFoundException; impo ...

  6. 【转】IOS中的release和nil

    nil和release的作用: nil就是把一个对象的指针置为空,只是切断了指针与内存中对象的联系:而release才是真正通知内存释放这个对象. 所以nil并没有释放内存,只有release才回真正 ...

  7. UI界面的一些简单控件

    虽然都是代码 , 但是基本都有注释. #import "ViewController.h" @interface ViewController () /** * 创建视图 */ @ ...

  8. C语言中的自定义函数

    C语言中可以使用系统函数也可以使用自己的函数,就是自定义函数 自定义函数分为四种 第一种:无参无返回值的 函数的声明 void sayH(); 函数的实现 void sayH(){ printf(&q ...

  9. mysql字段不能为空的字段为空时也能插入的方法

    接手了一个项目,设计数据库的时候字段全部是不能为空,但是空值又可以插入数据,刚拿过来的时候就提示各种sql语法错误,现记录一下解决办法. 将my.ini中设置: #sql-mode=STRICT_TR ...

  10. 大家一起和snailren学java-(五)访问控制权限

    “感觉中间断了一天,可是数数好像又没断……(-_^)” 这一天我们来再次细致讨论一下java的访控机制.java的访控机制其实在编程架构上非常实用的,也就是所谓的隐藏具体实现或者封装. 首先看看使用场 ...