让Category自动合成属性

最近写了一个小工具库,分类中添加的属性自动生成setter和getter并绑定ivar。平时我们要想实现给分类添加属性,需要用到runtime的两个apiobjc_setAssociatedObjectobjc_getAssociatedObject。导入我写的工具库后(拖入工程即可,无需#import),在.h文件写好属性后,给需要自动合成的属性在.m文件用@dynamic标记一下即可。用法如下:

@interface NSObject (category)

@property (nonatomic, strong) id cate_obj;
@property (nonatomic, assign) int cate_number;

@end

@implementation NSObject (category)
@dynamic cate_obj, cate_number;


@end

然后就可以正常使用了。

目前支持的属性关键字有: assign,strong,weak,atomic,nonatomic

支持的属性类型:
1、intfloat等基本数据类型
2、任何oc对象类型
3、char *,void *指针类型
4、oc中定义的结构体,CGRectCGSizeCGPoint, CGVector, CGAffineTransform, CATransform3D,NSRange, UIOffset, UIEdgeInsets,不支持自定义的结构体和联合体。

下载地址:传送门,将AutoProperty目录下文件拖入到工程即可。

你可能感兴趣的:(让Category自动合成属性)