Adding Properties to an Objective-C Category – Revisted
来源:互联网 发布:雪豹特种部队 知乎 编辑:程序博客网 时间:2024/04/30 23:21
http://www.davidhamrick.com/2012/05/28/Adding-Properties-to-an-Objective-C-Category-Revisted.html
In my last post I wrote about adding properties to a category in objective-c. I have ended up using this feature quite a bit recently so I wrote a macro that will add the appropriate methods.
Before, when I wanted to add a category I would have to manually add the setter and getter.
static char kDHStyleKey;@interface UIView (DHStyleManager)@property (nonatomic, copy) NSString* styleName;@end@implementation UIView (DHStyleManager)@dynamic styleName;- (void)setStyleName:(NSString *)styleName{objc_setAssociatedObject(self, &kDHStyleKey, styleName, OBJC_ASSOCIATION_COPY);}- (NSString*)styleName{return objc_getAssociatedObject(self, &kDHStyleKey);}@end
Now, all I need to do is use the macro to create the getters and setters.
@interface UIView (DHStyleManager)@property (nonatomic, copy) NSString* styleName;@end@implementation UIView (DHStyleManager)ADD_DYNAMIC_PROPERTY(NSString*,styleName,setStyleName);@end
All you need to do to use this macro is put this in a header file.
#define ADD_DYNAMIC_PROPERTY(PROPERTY_TYPE,PROPERTY_NAME,SETTER_NAME) \@dynamic PROPERTY_NAME ; \static char kProperty##PROPERTY_NAME; \- ( PROPERTY_TYPE ) PROPERTY_NAME \{ \return ( PROPERTY_TYPE ) objc_getAssociatedObject(self, &(kProperty##PROPERTY_NAME ) ); \} \\- (void) SETTER_NAME :( PROPERTY_TYPE ) PROPERTY_NAME \{ \objc_setAssociatedObject(self, &kProperty##PROPERTY_NAME , PROPERTY_NAME , OBJC_ASSOCIATION_RETAIN); \} \
- Adding Properties to an Objective-C Category – Revisted
- Adding Properties to an Objective-C Category
- An introduction to Objective-C Meta Class
- Objective-C使用Category
- Category 类别 -Objective-C
- Category 类别 -Objective-C
- Objective-C分类 (category)
- Category 类别 -Objective-C
- Objective-C相关Category
- Objective-C之category
- objective-c中的category
- Category 类别 -Objective-C
- Objective-C 分类Category
- Category 类别 -Objective-C
- objective-c category
- Objective-C之Category
- Objective-C:理解Category
- Objective-C之Category
- TC使用技巧——复制文件名及路径
- CMake生成VS2012 ARM project遇到的问题
- js调用打印当前页的两种方法
- 策略模式(Strategy) 4
- 笨鸟的数据结构理解 - 数组
- Adding Properties to an Objective-C Category – Revisted
- ubuntu设置开机启动图形应用程序,替换默认图形桌面
- 不用xib创建简单应用
- JQuery 模拟弹出窗口
- linux学习 持续更新中
- 全国软件设计大赛--求出一个二进制串中连续的1或连续的0出现的最大次数
- IOS http断点续传相关
- zencart商品页面添加tag标签 增加GOOGLE 收录
- http status 汇总