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 2012-09-17 14:15:56

回答

0

您的委託需要強烈引用的東西。 NSFileManager只會對它做一個弱引用(因爲它應該這樣做),所以如果你沒有強有力的引用,你的委託將被釋放,回調將不會被看到。

你有沒有考慮過使用塊的回調?這可能會更好。