iOS进阶指南iOS DeveloperiOS

Objective-C:在分类中添加属性

2016-03-23  本文已影响523人  ZhengLi
这两天在想着写一个自己的开源框架,类似MJRefresh那种。因为是自己第一个框架,也没有这方面的经验,还在摸索中。
#import <UIKit/UIKit.h>

@interface UITableViewController (ZLRefresh)

@property (nonatomic, strong) NSObject *object;

@end

此时编译器会报警告,大意是此分类无法合成属性的相关实例变量。


#import "UITableViewController+ZLRefresh.h"
#import <objc/runtime.h>

static const char* kObjectPropertyKey = "kObjectPropertyKey";

@implementation UITableViewController (ZLRefresh)
- (NSObject *)object{
    
    return objc_getAssociatedObject(self, kObjectPropertyKey);
    
}
- (void)setObject:(NSObject *)object{
    
    objc_setAssociatedObject(self,
                    kObjectPropertyKey,
                    object,
                    OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
@end

PS:此处注意要导入<objc/runtime.h>这个头文件!

3.可以用以下的方法管理关联对象:

上一篇 下一篇

猜你喜欢

热点阅读