0

我想将一个块与某个标识符相关联,并将其存储在字典中以供以后检索。

我做错了吗?基本上我担心我可能会传入一个通过 setAction:forProduct 在堆栈上声明的块,然后引用将失效。ARC 是否足够聪明,能够捕捉到这一点?

typedef void (^ProductPurchased)();

-(void) setAction:(ProductPurchased)action forProduct:(NSString*)identifier;

@property (strong, nonatomic) NSMutableDictionary *actions;

-(void) setAction:(ProductPurchased) action forProduct:(NSString*)identifier
{
    [self.actions setObject:action forKey:identifier];
}
4

1 回答 1

2

请参阅此问题的答案。您需要在将其添加到字典之前使用 Block_copy() 并在删除它之后使用 Block_release() 。

于 2013-03-17T09:40:17.090 回答