问题描述
|
我想创建
一个方法,该
方法接受
一个块,将其保存在成员中,启动
一个异步任务,然后在异步
调用进行其完成回调时
调用该块。
我是否必须保留街区?块内存的管理方式是否与其他任何对象相同?我可以合成
一个属性来保存块吗?
解决方法
块与用于内存管理的其他对象相似,但不相同。创建访问局部变量的块时,将在堆栈上创建它。这意味着它只有在其范围存在的情况下才有效。要保存此块供以后使用,您必须将其“ 0”,然后将其复制到堆中。因此,为了防止此类块出现问题,在将其存储到实例变量中之前,应复制而不保留其块。
,是的,您必须复制该块。块是常规的Objective-C对象。