Я разрабатываю приложение, которое в настоящее время изолировано. Он действует как основной текстовый редактор. Недавно я хотел проверить, что происходит, когда я открываю файл в своем приложении и другом приложении одновременно, делаю обновление в одном приложении, а затем вижу обновленный в другом. Я использую Coda
или BBEdit
в качестве моих альтернативных редакторов. Если я отключу песочницу, то этого вопроса не существует. Однако, поскольку приложения должны быть изолированы от 1 марта, я предпочел бы реализовать решение, а не ждать и видеть.
Когда я открываю оба файла и делаю редактирование в своем приложении, а затем переключаюсь на другое приложение, изменения отражаются так, что эти редакторы имеют только что сохраненную версию из моего приложения. Однако, если я выполню обратную сбережения от своего приложения, а затем перейду к моему - нет радости. Без каких-либо действий консоль сообщает о двух конкретных ошибках: deny file-issue-extension
и deny file-write-data
. Приложение, похоже, теряет привилегии для редактирования документа, так как он был изменен внешним редактором после того, как документ был открыт в моем приложении. Если я попытаюсь сохранить файл в своем приложении, он попросит дублировать документ, потому что он потерял доступ к исходному документу. Это не происходит наоборот, потому что эти приложения не были изолированы, и для этого у меня есть разрешения, которых нет в моем приложении. Также не кажется, что вы можете помешать другому приложению внести изменения, если вы не хотите этого поведения.
В документации на developer.apple.com ничего не говорится об этой ситуации. Я не уверен, что это предполагаемое поведение. Если да, то я могу просто сказать моему пользователю, что права на документы были потеряны, и они должны либо сохранить новую версию, либо повторно открыть файл. Если это НЕ предназначенное поведение, то какой метод в NSDocument API предоставит разрешение на файл после его потери? Я предполагаю, что ответ первый, что это предназначено, но может ли кто-нибудь подтвердить и есть документация?