给定以下类别定义,我如何在有和没有 ARC 的情况下处理 -dealloc?我目前正在使用 ARC,据我所知并在 Instruments 中四处寻找,正在清理这些属性,但我对此不是 100% 有信心。
@interface NSObject (SuperUsefulThingIWishAllNSObjectsHad)
@property (nonatomic, copy) NSString *foo;
@end
#import <objc/runtime.h>
@implementation NSObject (SuperUsefulThingIWishAllNSObjectsHad)
static const void *MyPropertyKey = &MyPropertyKey;
@dynamic foo;
- (NSString *)foo
{
return objc_getAssociatedObject(self,
MyPropertyKey);
}
- (void)setFoo:(NSString *)foo
{
objc_setAssociatedObject(self,
MyPropertyKey,
foo,
OBJC_ASSOCIATION_COPY);
}
这更多是为了我自己的启迪,但如果解决方案不是太老套,我可能有一些地方我真的想使用它。