Загрузка NSImage с рабочего стола, получающая ноль в приложении какао - PullRequest
0 голосов
/ 27 сентября 2018

Привет, я пытаюсь загрузить изображение, которое находится на рабочем столе.

NSURL *imageURL = [[NSWorkspace sharedWorkspace] desktopImageURLForScreen:[NSScreen mainScreen]];
 NSLog(@"%@",imageURL);
 NSImage *testImage = [[NSImage alloc] initWithContentsOfURL:imageURL];
 NSLog(@"%@",testImage);
[self.desktopView setImage:testImage];

Журнал testImage (null)

Над кодом, который я использую, но тестовое изображение получает ноль.

Есть предложения?

Заранее спасибо!

1 Ответ

0 голосов
/ 28 сентября 2018

Вероятно, у вас включена песочница приложений в Capabilities (я считаю, что она включена по умолчанию).Если он включен, вы не сможете получить доступ к файлам вне контейнера приложений (или некоторых других указанных местоположений) без взаимодействия с пользователем (например, NSOpenPanel или NSSavePanel ).

Руководство по программированию файловой системы: https://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/FileSystemOverview/FileSystemOverview.html

Документация по песочнице приложения здесь: https://developer.apple.com/library/archive/documentation/Security/Conceptual/AppSandboxDesignGuide/AppSandboxInDepth/AppSandboxInDepth.html

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

Редактировать:

Вы захотите использовать закладку с безопасностьюдля постоянного доступа к ресурсам.Я не знаком с приложениями в вашем комментарии, но я предполагаю, что они предлагают пользователю при первом запуске для доступа.

Документация здесь:

https://developer.apple.com/library/archive/documentation/Security/Conceptual/AppSandboxDesignGuide/AppSandboxInDepth/AppSandboxInDepth.html#//apple_ref/doc/uid/TP40011183-CH3-SW16

https://developer.apple.com/library/archive/documentation/Miscellaneous/Reference/EntitlementKeyReference/Chapters/EnablingAppSandbox.html#//apple_ref/doc/uid/TP40011195-CH4-SW18

...