3

FSPathCopyObjectAsyncを使用していますが、失敗しています。私が問題の周りに頭を浮かべるために、別の場所でサンプルを探していましたが、Matt Long's tutorial over on Cocoa is my Girlfriendというちょっと古いソースコードを試していましたが、a project on github, as a category on NSFileManagerにもう少し精巧な例が見つかりました。私のプロジェクトはARCで動作しているので、移植して半分しか成功しませんでした。ARCでFSPathCopyObjectAsyncのコールバックを取得

current formでは、実際のコピーは機能しますが、コールバックメソッドMZCopyFSPathFileOperationStatusProcは呼び出されません。このコールバックメソッドは、非同期コピーを使用する唯一の理由です。そうしないと、バックグラウンドで同期コールを実行する可能性があります。コールバックが呼び出されない理由は、いくつかのオブジェクトがARCによって誤って解放されているということですが、何か他のことが起こっている可能性があります。私はcopyItemAsyncAtPath:toPath:destName:options:statusChangeInterval:error:メソッドの返品オブジェクトを保持しているので、それはできないでしょうか?

誰でもspot the errorとなり、このカテゴリでコールバックが生成されない理由を説明できますか?それはARCですか?それは別のものですか?

多くの義務があります。 EP。

P.S.冗長性の理由から、ここに要点があります:https://gist.github.com/6f3715753896ccf6fd35

+0

ここでコードを見てみましょう。 – Mark

答えて

0

あなたの代理人は何かによって強く参照される必要があります。 NSFileManagerは弱参照を保持しているだけなので、強力な参照がなければデリゲートが解放され、コールバックは表示されません。

コールバックのブロックの使用を検討しましたか?おそらくそれが望ましいでしょう。

関連する問題