让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目录下文件拖入到工程即可。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容