美文网首页
iOS 类别中使用属性

iOS 类别中使用属性

作者: 会武功的蚊子 | 来源:发表于2017-02-22 20:54 被阅读0次

iOS扩展属性:category可以扩展类的方法,但是不能扩张类的属性。如果要扩展类的属性,可以用associative,这个相对于category来说用的比较少,而且他还用到运行时编程,必须使用,使用objc_getAssociatedObject,objc_setAssociatedObject以及objc_removeAssociatedObjects.这几个方法的生命如下:

```

#import@interface Person : NSObject

@property (nonatomic, copy) NSString *name;

@end

#import "Person.h"

@implementation Person

@end

新建一个分类,运用associative添加属性

#import "Person.h"@interface Person (addproty)@property(nonatomic, copy)NSString *addr;@end#import "Person+addproty.h"#import@implementation Person (addproty)

static char strAddrKey = 'a';

- (NSString *)addr

{

return objc_getAssociatedObject(self, &strAddrKey);

}

- (void)setAddr:(NSString *)addr

{

objc_setAssociatedObject(self, &strAddrKey, addr, OBJC_ASSOCIATION_COPY_NONATOMIC);

}

@end

```

相关文章

  • iOS 类别中使用属性

    iOS扩展属性:category可以扩展类的方法,但是不能扩张类的属性。如果要扩展类的属性,可以用associat...

  • iOS类别、继承、扩展

    iOS类别(也叫分类):一般扩展本类的方法,可以添加属性,不能自动生成setter、getter方法;使用的是动态...

  • 使用runtime关联对象

    一、添加属性 在使用类别时可以直接添加方法,不能直接添加属性,但是可以利用runtime中关联对象的方法添加属性。...

  • ios中给分类添加属性

    ios中利用类别给已有的类扩展方法是可以的,但是如果直接的添加属性是会报错的。利用runtime可以达到添加属性的...

  • ios中给分类添加属性

    ios中利用类别给已有的类扩展方法是可以的,但是如果直接的添加属性是会报错的。利用runtime可以达到添加属性的...

  • iOS 类别(分类)添加属性

    一:首先介绍Category好处: 1、可以将类的实现分散到多个不同文件或多个不同框架中,方便代码管理。也可以对框...

  • iOS给类别添加属性

    当向类别中添加自定义属性时会报instance variables may not be placed in ca...

  • iOS 类别category添加属性

    1. 在.h中添加@property (copy, nonatomic) NSString *vc_id; 2. ...

  • CALayer

    初探CALayer属性 IOS中CALayer的使用//这个算是比较全了 iOS - CALayer 绘图层 iO...

  • Button 使用objc_setAssociatedObjec

    利用Runtime不仅可以使用objc_setAssociatedObject方法来为类别中添加属性 也可以这样...

网友评论

      本文标题:iOS 类别中使用属性

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