Что на самом деле делает startAccessingSecurityScopedResource()?

Я создаю изолированное Mac-приложение, и я использовал NSOpenPanel, чтобы получить URL-адрес файла, и сохранил его в UserDefaults в качестве закладки безопасности. Когда я закрываю и перезапускаю приложение, я снова могу преобразовать этот блок данных в URL.

Документация говорит, что я должен позвонить startAccessingSecurityScopedResource()и проверьте его возвращаемое значение. (Это возвращает true когда я звоню.) Но если я не звоню, у меня все еще есть разрешенный URL, и у меня все еще есть разрешения для доступа к нему.

Что значит startAccessingSecurityScopedResource() на самом деле делать? Может ли случиться что-нибудь плохое, если я не позвоню?

1 ответ

Пока ваше приложение получает доступ к файлам только в стандартных местоположениях ("Загрузки", "Музыкальные фильмы", "Изображения") и вы включили в свое приложение необходимые права доступа к программным файлам и папкам, вам не нужно хранить закладки безопасности для этих местоположений.

Но для других мест, которые должны оставаться доступными после перезапуска приложения, вы должны хранить закладки в области безопасности и вызывать startAccessingSecurityScopedResource() до доступа. Если вы пропустите этот шаг, вы получите исключение, как только попытаетесь получить доступ к этому файлу.

startAccessingSecurityScopedResource() делает ресурс закладки безопасности доступным для изолированной программной среды вашего приложения, предоставляя вам доступ к этому ресурсу.

Другие вопросы по тегам