2012-09-12 24 views
11

Tengo un objeto que se ajusta al protocolo NSFilePresenter que representa mi paquete de documentos de la aplicación basada en documentos. Cuando se crea un nuevo archivo dentro del paquete, ya sea usando programáticamente NSFileManager con los métodos apropiados de NSFileCoordination o mediante Finder, solo obtuve el evento -presentedSubitemDidChangeAtURL:, pero no parece tan obvio en este caso -presentedSubitemDidAppearAtURL:.NSFilePresenter -presentedSubitemDidAppearAtURL: el método nunca se llama

¿Es esto un comportamiento esperado o estoy haciendo algo mal?

Los comentarios sobre -presentedSubitemDidAppearAtURL: en el estado de NSFilePresenter claro:

sea notificado de que un archivo o directorio que contiene el directorio se ha añadido. Si este método no está implementado pero -presentedItemDidChange es, y el directorio es realmente un paquete de archivos, entonces la maquinaria de coordinación de archivos invocará -presentedItemDidChange en su lugar.

+0

Supongo que no implementó '-presentedItemDidChange'? – charles

+1

[Aquí] (http://www.objc.io/issue-10/icloud-document-store.html) es una buena publicación relacionada con este tema, y ​​mi conclusión es; No use 'NSFilePresenter'. – Eonil

+1

GCD parece ser el camino a seguir. [Manejo de eventos del sistema de archivos con GCD] (http://www.davidhamrick.com/2011/10/10/handling-filesystem-events-with-gcd.html) – Eonil

Respuesta

8

Después de luchar con este problema durante bastante tiempo, abrí un problema de soporte técnico con Apple. Su respuesta fue que este es un error, y lo único que podemos hacer ahora es hacer todo a través del -presentedSubitemDidChangeAtURL:.

Animaría a cualquiera que encuentre este problema a que presente un error (https://bugreport.apple.com) para alentar a Apple a resolver este problema lo antes posible.

+0

¿La respuesta de Apple a usted indicó la extensión del "error"? ¿Es simplemente que '-presentatedSubitemDidAppearAtURL:', '-accommodatePresentedSubitemDeletionAtURL: completionHandler:' et. Alabama. aún no están manejados por la API NSFileCoordinator, o hay casos en los que se llamarían? –

+0

No me revelaron ningún detalle, así que no estoy seguro, desafortunadamente. – jlong64

+1

Todavía igual en 2014 Nov. Perdí alrededor de un día para esto. Gracias de cualquier manera. – Eonil

Cuestiones relacionadas