在类目中添加属性

.h文件
//分类的头文件
@interface ClassName (CategoryName)
@property (nonatomic, strong) NSString *str;//此为新增的属性
//此为新增的属性
@end

.m文件

//实现文件
#import "ClassName + CategoryName.h"
#import <objc/runtime.h>

static void *strKey = &strKey;

@implementation ClassName (CategoryName)
-(void)setStr:(NSString *)str
{
    objc_setAssociatedObject(self, & strKey, str, OBJC_ASSOCIATION_COPY);
}  

-(NSString *)str
{
    return objc_getAssociatedObject(self, &strKey);
}
@end


时间: 2024-07-31 14:57:42

在类目中添加属性的相关文章

OC中协议, 类目, 时间, 延展, 属性

必须接受marryprotocol协议, id<marryprotocol>基于类型的限定, 才能给实例变量赋值 @property (nonatomic, assign) id<marryprotocol> husband; 避免Optitonal没有实现的功能 if ([_husband respondsToSelector:@selector(driver)]) { [_husband driver]; } @required//必须实现的协议, 默认协议 - (void)s

category中添加属性的简单方式

一.概念扩充: 1.如我们所知,使用category是用来对现有类进行功能扩展,或者将类分成多模块的一种方式.由声明和实现两部分组成.可以单独写成Objiective-C File类型文件(包含.h和.m). 2.category可以用来给现有类添加新的方法. 3.category不可以给类添加成员,会直接报错(编译不过). 4.category可以用@property来添加属性,此种方式会自动生成对应属性的set和get方法的声明,但是没有set和get方法的实现,也不会自动生成带有“_”的属

为一个类动态的添加属性

/* 1不想集成一个类添加属性,想动态的添加一个属性 */ ||解决步骤 1.新建一个分类,导入 #import <objc/runtime.h> 2.添加属性(添加的属性,只是做了声明,并没有帮我们生成set,get方法) 3.手动添加set,get方法 {1.在set方法中实现 /* *@object 为那个对象添加属性 *@key  添加一个对应的key  c语言类型的 *@value  对应的值 *@objc_AssociationPolicy  策略 */ objc_setAssoc

iOS在一个分类中添加属性

有时候,我们会想在别人的类中添加一个属性.这个属性只会在自己的模块用到,在其它地方无用.那么现在就用两个方案: 1,直接在原类中添加一个属性 2,写一个分类,在分类中将这个属性加进去. 这两种方案实现的异同: 同:都能达到在已有的类中添加一个属性的需求. 异: 第一种方案优点:实现简单.缺点:破坏了已有的类的封装,会给后续开发者带来疑惑.结论:笨方法 第二种方案有点:能与已有类完全分开,保持了模块化的独立性.貌似没有缺点,如果一定要找出一个缺点,那就是一个字"难",因为要用到个高大上的

如何再分类中添加属性

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(nonatomi

Android4.0.4-在build.prop中添加属性的方法【转】

本文转载自:http://blog.csdn.net/imyfriend/article/details/8939964 1.在*.rc文件中用setprop添加,例如在源码android4.0\system\core\rootdir\etc\init.goldfish.rc中有以下内容: setprop ARGH ARGH    setprop net.eth0.gw 10.0.2.2    setprop net.eth0.dns1 10.0.2.3    setprop net.gprs.

java.sql.SQLException: 不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK

在pom.xml文件中添加如下依赖: <!-- https://mvnrepository.com/artifact/cn.easyproject/orai18n --> <dependency> <groupId>cn.easyproject</groupId> <artifactId>orai18n</artifactId> <version>12.1.0.2.0</version> </depend

directshow filter中添加属性页

directShow 属性页的制作,为CBall filter加了一个属性页 具体为分以下步骤: 1.在要显示属性的类中继承现ISpecifyPropertyPages类,并实现此类的GetPages()函数. 如下所示:HRESULT STDMETHODCALLTYPE CBouncingBall::GetPages(CAUUID *pPages){  if (pPages == NULL) return E_POINTER;  pPages->cElems = 1;  pPages->pE

python类对象动态添加属性和方法

class Person(): #创建一个类 def __init__(self,name): #定义初始化信息. self.name = name li = Person('李') #实例化Person('李'),给变量li li.age = 20 #再程序没有停止下,将实例属性age传入.动态语言的特点. Person.age = None #这里使用类名来创建一个属性age给类,默认值是None.Python支持的动态属性添加. def eat(self): #定义一个方法,不过这个方法再