2013-03-17 106 views
0

我想将某个块与某个标识符关联起来,并将其存储在字典中供以后检索。块+ ARC,堆栈和堆

我做错了吗?基本上我担心我可能会传入一个通过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]; 
} 

回答

2

查看this的回答。在删除它之前,您需要先使用Block_copy(),然后再将其添加到字典和Block_release()中。