質問

FSPathCopyObjectAsyncを使っていて、失敗しています。私が他の場所の例を探していた問題を中心にして、私は GITHUB上のプロジェクト、NSFileManager のカテゴリとして。私のプロジェクトはARCの下で実行されているので、私はそれを移植しようとしました、そしてその半分だけ成功しました。

その現在のフォーム、実際のコピー作業は、CallbackメソッドMZCopyFSPathFileOperationStatusProcは呼び出されません。そのコールバックメソッドは、非同期コピーを使用する唯一の理由であることが起こります。コールバックが呼び出されない理由は、いくつかのオブジェクトがARCによって誤ってリリースされているということですが、他に何かが起こっている可能性があります。 copyItemAsyncAtPath:toPath:destName:options:statusChangeInterval:error:メソッドのReturnオブジェクトに保持しているので、それほど右?

誰がエラーを見つけて、このカテゴリがコールバックを生成していない理由を説明しますか?それは弧ですか?それは他のものですか?

は大いに義務付けられています。 ep。

p.S。冗長性の理由から、ここにgist: https://gist.github.com/6F3715753896CCF6FD35

役に立ちましたか?

解決

Your delegate needs to be strongly referenced by something. NSFileManager will only hold a weak reference to it (as it should do), so if you don’t have a strong reference to it, your delegate will get released and the callbacks won’t be seen.

Have you considered using blocks for the callbacks? That would probably be preferable.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top