gpt4 book ai didi

objective-c - 在 ARC 中获取 FSPathCopyObjectAsync 的回调

转载 作者:行者123 更新时间:2023-12-04 03:25:23 28 4
gpt4 key购买 nike

我想使用 FSPathCopyObjectAsync 但我失败了。为了解决这个问题,我一直在其他地方寻找它的例子,尽管我正在试验来自 Matt Long's tutorial over on Cocoa is my Girlfriend 的稍微过时的源代码。 ,然后我在 a project on github, as a category on NSFileManager 中找到了一个更详细的示例.由于我的项目在ARC下运行,我尝试移植它,但只成功了一半。

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

谁可以 spot the error并解释为什么这个类别没有产生任何回调?是ARC吗?是别的东西吗?

非常感谢。 EP.

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

最佳答案

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

您是否考虑过使用 block 来进行回调?这可能更可取。

关于objective-c - 在 ARC 中获取 FSPathCopyObjectAsync 的回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9026749/

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