3

我正在寻找使用FSPathCopyObjectAsync,但我失败了。为了解决这个问题,我一直在其他地方寻找它的例子,虽然我正在尝试使用Matt Long 的教程中稍微过时的源代码 Cocoa is my Girlfriend,然后我发现了一个更详细的例子github 上的一个项目,作为NSFileManager. 由于我的项目是在 ARC 下运行的,所以我尝试移植它,但只成功了一半。

在其当前形式MZCopyFSPathFileOperationStatusProc中,实际的复制工作,但从未调用回调方法。该回调方法恰好是使用异步复制的唯一原因,否则还不如在后台运行同步复制。我假设未调用回调的原因是 ARC 错误地释放了某些对象,但可能还有其他事情发生。我坚持copyItemAsyncAtPath:toPath:destName:options:statusChangeInterval:error:方法的返回对象,所以不可能,对吧?

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

非常感谢。EP。

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

4

1 回答 1

0

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

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

于 2012-02-05T11:41:55.043 回答