我真的不知道什么时候需要复制一个块
文档说when you expect the block to be used after destruction of the scope within which it was declared
。
例如,当我将它们用作回调方法时,是否需要复制它?副本我的意思是为我的块创建一个复制属性并在那里保存块或以某种方式发送一个复制消息。当下载或类似的内容完成时,范围可能会被破坏。那么在这种情况下我需要复制块吗?我可以用这种方式创建循环引用吗?
现在我有一个下载器类(仅测试块,对我来说太危险了)使用完成块,当我复制块时,创建块的视图控制器和下载器类不是释放。
你能给我一些很好的例子,特别是用它们来完成文件下载等异步操作吗?
感谢。
答案 0 :(得分:6)
大多数时候采用回调的方法会为你复制块
当你需要在Objective-C
中自己复制一个块时,我可以想到两种情况由于这些是块在使用或处理之前会超出范围的时间。