iOS--- Category添加属性

水果官方给出的分类,即Category是不能添加属性的,但是我们是谁;我们有黑魔法啊,runtime 操练起来啊


从xcode6开始到xcode 7创建分类都要在
command+N,之后选中Objective -C File,然后选中你要给谁创建分类,给谁的分类添加属性。
我这里选择万象“NSObject”


.h

//  NSObject+IndieBandName.h
//  CategoryAddVar
//
//  Created by Vizard on 16/7/28.
//  Copyright © 2016年 Vizard. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface NSObject (IndieBandName)

@property (nonatomic, strong) NSString *indieBandName;

@end

.m

//  NSObject+IndieBandName.m
//  CategoryAddVar
//
//  Created by Vizard on 16/7/28.
//  Copyright © 2016年 Vizard. All rights reserved.
//

#import "NSObject+IndieBandName.h"
#import <objc/runtime.h>

static const void *IndieBanNameKey = &IndieBanNameKey;

@implementation NSObject (IndieBandName)

@dynamic indieBandName;

- (NSString *)indieBandName
{
    return objc_getAssociatedObject(self, IndieBanNameKey);
}

- (void)setIndieBandName:(NSString *)indieBandName
{
    objc_setAssociatedObject(self, IndieBanNameKey, indieBandName, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}

@end

然后在VC中

就可以使用了。
相信看官看到这里已经看透了,黑魔法的关键点了

 1.#import <objc/runtime.h>
2.@dynamic indieBandName;
3. objc_getAssociatedObject
4. objc_setAssociatedObject
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • sundancer阅读 177评论 0 0
  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 1,789评论 0 9
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,217评论 30 472
  • 懂得分享,懂得感恩。七月加油!
    卓麦阅读 319评论 0 0
  • 第五十二章 凤九的脸上微微有些怒色,“难道凤九在帝君心里,就是个如此蠢笨的?又或者,凤九根本就是个累赘?那日里凤九...
    墨冉_诺诺阅读 3,306评论 12 43