欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

如何给category添加属性

程序员文章站 2022-04-30 10:01:53
...

主要是使用了runtime中的associative机制。

 

NSDate+extension.h

@interface NSDate (extension)

@property (nonatomic, strong) NSDateFormatter *formatter;

@end

 

NSDate+extension.m

#import "NSDate+extension.h"
#include <objc/runtime.h>

static void *formatterKey = (void *) @"formatterKey";

@implementation NSDate (extension)
@dynamic formatter;

+ (NSDateFormatter *)formatter {
	return objc_getAssociatedObject(self, formatterKey);
}

+ (void)setFormatter:(NSDateFormatter *)formatterProperty {
	objc_setAssociatedObject(self, formatterKey, formatterProperty, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}

@end