NSFilePresenter -presentedSubitemDidAppearAtURL: метод никогда не вызван
У меня есть объект, который соответствует протоколу NSFilePresenter, который представляет мой пакет документов приложения на основе документов. Когда в пакете создается новый файл, либо программно используя NSFileManager с надлежащими методами NSFileCoordination, либо через Finder i, он получает событие -presentedSubitemDidChangeAtURL:
, но не кажется таким очевидным в этом случае -presentedSubitemDidAppearAtURL:
.
Является ли это ожидаемым поведением или я делаю что-то неправильно?
Комментарии в -presentedSubitemDidAppearAtURL:
в состоянии NSFilePresenter гласят:
Сообщать, что файл или каталог, содержащиеся в каталоге, были добавлены. Если этот метод не реализован, но -presentedItemDidChange
is, и каталог на самом деле является файловым пакетом, тогда механизм координации файлов будет ссылаться -presentedItemDidChange
вместо этого.
Ответы
Ответ 1
После долгой борьбы с этой точной проблемой я открыл проблему с технической поддержкой Apple. Их ответ заключался в том, что это ошибка, и единственное, что мы можем сделать прямо сейчас, это сделать все через -presentedSubitemDidChangeAtURL:
.
Я бы посоветовал всем, кто сталкивался с этой проблемой, подать сообщение об ошибке (https://bugreport.apple.com), чтобы побудить Apple как можно скорее устранить эту проблему.
Ответ 2
https://developer.apple.com/library/mac/documentation/Foundation/Reference/NSFilePresenter_protocol/
Объекты не сообщаются об изменениях, сделанных непосредственно с использованием низкоуровневых вызовов чтения и записи. Только, которые идут с помощью координатора файла в уведомлениях.