我想用 FSPathCopyObjectAsync 我失败了。为了解决这个问题,我一直在其他地方寻找它的例子,尽管我正在尝试从 马特*朗在可可上的教程是我的女朋友, ,然后我发现了一个更详细的例子 github上的一个项目,作为 NSFileManager.由于我的项目是在ARC下运行的,所以我尝试移植它,并且只在它的一半成功。

在其 现行表格, ,实际复制工作,但回调方法 MZCopyFSPathFileOperationStatusProc 永远不会被召唤。该回调方法恰好是使用异步复制的唯一原因,否则不妨在后台运行同步方法。我假设回调不被调用的原因是某些对象被ARC错误地释放,但可能还有其他事情发生。我持有的返回对象 copyItemAsyncAtPath:toPath:destName:options:statusChangeInterval:error: 方法,所以这不可能是吧?

谁能 发现错误 并解释为什么这个类别没有产生任何回调?是弧吗?是别的东西吗?

非常感谢。EP.

附:出于冗余原因,这里是要点: https://gist.github.com/6f3715753896ccf6fd35

有帮助吗?

解决方案

你的委托需要被某些东西强烈引用。NSFileManager只会持有对它的弱引用(因为它应该这样做),所以如果你没有对它的强引用,你的委托将被释放,回调将不会被看到。

您是否考虑过使用块进行回调?那可能更好。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top