2012-09-12 60 views
11

我有一個符合NSFilePresenter協議的對象,它代表了我的基於文檔的應用程序文檔包。當在包內創建一個新文件時,無論是編程使用NSFileManager與NSFileCoordination方法或通過Finder我只有-presentedSubitemDidChangeAtURL:事件,但在這種情況下看起來不那麼明顯-presentedSubitemDidAppearAtURL:NSFilePresenter -presentedSubitemDidAppearAtURL:方法永遠不會被調用

這是預期的行爲還是我做錯了什麼?

在NSFilePresenter狀態明確的上-presentedSubitemDidAppearAtURL:評論:

被通知通過該目錄包含文件或目錄已被添加。如果此方法未實現但-presentedItemDidChange是,並且目錄實際上是文件包,則文件協調機器將調用-presentedItemDidChange

+0

我想你沒有實現'-presentedItemDidChange'? – charles

+1

[這裏](http://www.objc.io/issue-10/icloud-document-store.html)是一個與這個問題有關的好貼子,我的結論是;不要使用'NSFilePresenter'。 – Eonil

+1

GCD似乎是要走的路。 [使用GCD處理文件系統事件](http://www.davidhamrick.com/2011/10/10/handling-filesystem-events-with-gcd.html) – Eonil

回答

8

在經歷了這個確切問題很長一段時間之後,我開了一個Apple技術支持問題。他們的迴應是,這是一個錯誤,我們現在唯一能做的就是通過-presentedSubitemDidChangeAtURL:來做所有事情。

我會鼓勵任何遇到此問題的人提交錯誤(https://bugreport.apple.com),鼓勵Apple儘快解決此問題。

+0

蘋果對你的迴應是否表明「bug」的程度?簡單說就是'-presentedSubitemDidAppearAtURL:','-accommodatePresentedSubitemDeletionAtURL:completionHandler:'et。人。還沒有被NSFileCoordinator API處理,或者是否有被調用的情況? –

+0

他們沒有透露任何細節給我,所以我不確定,不幸的是。 – jlong64

+1

2014年11月仍然如此。爲此我浪費了大約一天的時間。不管怎麼說,還是要謝謝你。 – Eonil

相關問題