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 に答える