gpt4 book ai didi

ios - block +ARC,栈和堆

转载 作者:行者123 更新时间:2023-11-28 22:37:40 25 4
gpt4 key购买 nike

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

我做错了吗?基本上我担心我可能会传递一个通过 setAction:forProduct 在堆栈上声明的 block ,并且该引用稍后将失效。 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];
}

最佳答案

查看 this 的答案.您需要在将其添加到字典之前使用 Block_copy(),在删除它之后使用 Block_release()。

关于ios - block +ARC,栈和堆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15459069/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com