如何发布使用 objective C 中的类别添加的副本 属性?

how to release copy property added using category in objective C?

我已经使用类别向 UITableViewCell 添加了一个副本 属性,如下所示

NSString const *key = @"CellSelectedBlockKey";

@interface UITableViewCell (CellSelectionBlock)
@property (nonatomic, copy) CellSelectedBlock cellSelectedBlock;
@end

@implementation UITableViewCell (CellSelectionBlock)

- (void)setCellSelectedBlock:(void(^)(UITableView *table, NSIndexPath *indexpath))cellSelectedBlock
{
    objc_setAssociatedObject(self, &key, cellSelectedBlock, OBJC_ASSOCIATION_COPY_NONATOMIC);
}

- (CellSelectedBlock)cellSelectedBlock
{
    return objc_getAssociatedObject(self, &key);
}
@end

我将如何清除内存(释放),这个 属性 因为我不能为此覆盖 dealloc 方法。

对于这方面的任何帮助,我将不胜感激。关于将 属性 添加到现有 class 而无需 subclass 的最佳方法的任何建议。

具有强引用关联对象策略(OBJC_ASSOCIATION_RETAINOBJC_ASSOCIATION_RETAIN_NONATOMICOBJC_ASSOCIATION_COPYOBJC_ASSOCIATION_COPY_NONATOMIC)的关联对象集在新值时自动释放为同一个键设置(或 nil 设置为清除),或者当父对象被释放时,就像 retain/copy 属性一样,或者在 ARC 中使用强引用.