我正在使用一个类别NSAttributedString (Additions)
,并且我真的需要一种方法来添加一个属性,该属性将是一个BOOL
(指示字符串是否是一个HTML标签)。我知道类别不应该有属性,但这是我需要做的。我试着编写自己的getter和setter方法,但它不起作用。这是如何工作的呢?
发布于 2012-07-18 03:29:56
为了完整起见,我是这样做的:
@接口
@interface ClassName (CategoryName)
@property (readwrite) BOOL boolProperty;
@end
@实现
#import <objc/runtime.h>
static char const * const ObjectTagKey = "ObjectTag";
@implementation ClassName (CategoryName)
- (void) setBoolProperty:(BOOL) property
{
NSNumber *number = [NSNumber numberWithBool: property];
objc_setAssociatedObject(self, ObjectTagKey, number , OBJC_ASSOCIATION_RETAIN);
}
- (BOOL) boolProperty
{
NSNumber *number = objc_getAssociatedObject(self, ObjectTagKey);
return [number boolValue];
}
@end
发布于 2012-03-20 05:13:16
如果您确实需要添加一个属性,那么您应该创建一个子类,而不是添加一个类别。
https://stackoverflow.com/questions/9776811
复制相似问题