iOS--- Category添加属性

作者: Easy_VO | 来源:发表于2016-07-28 14:02 被阅读239次

水果官方给出的分类,即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

相关文章

  • iOS--- Category添加属性

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

  • runtime常用的几种使用场景:

    1.category中添加属性 category里面是没法直接添加属性的,但是通过runtime的方式可以实现。主...

  • Category 的 本质

    Category的实现原理,以及Category为什么只能添加方法不能添加属性 ?category的底层结构是st...

  • iOS用runtime给Category添加属性

    用runtime给Category添加属性 1、添加属性 (1)UIViewController+CXHelp.h...

  • iOS开发 Category

    1.说下category原理,以及category为什么只能添加方法不能添加属性? 分类的实现是将category...

  • iOS Category分类

    1.说下category原理,以及category为什么只能添加方法不能添加属性? 分类的实现是将category...

  • category添加属性

    category中添加属性不会生成成员变量,也不会自动生成set和get方法;如果想动态为分类添加属性,需要使用运...

  • category添加属性

    // key作为该对象实例的属性的键,而value就是对象实例的属性的值// associative是在运行时动...

  • Category添加属性

    通过runtime的两种方法就可以为类别添加一个实例变量了。

  • category添加属性

    转自http://www.tuicool.com/articles/FZn6Rfa

网友评论

    本文标题:iOS--- Category添加属性

    本文链接:https://www.haomeiwen.com/subject/jbeajttx.html