Как получить все PHAssets из библиотеки фотографий MacOS
Я хочу проанализировать все изображения из моей библиотеки фотографий MacOS, используя PHAsset. Однако все примеры, которые я нахожу, работают только для iOS, как показано ниже, где последняя строка, которая извлекает ресурсы, недоступна в среде macos:
NSMutableArray *photos = [[NSMutableArray alloc] init];
PHFetchOptions *allPhotosOptions = [[PHFetchOptions alloc] init];
allPhotosOptions.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"creationDate" ascending:YES]];
// Below compilation error as fetchAssetsWithMediaType is only on iOS framework
PHFetchResult *allPhotos = [PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeImage options:allPhotosOptions];
Какую команду fetchAssets я должен использовать в MacOS (версия 10.13), или есть другой способ сделать это?
1 ответ
Каркас Photoshop - или, по крайней мере, основное подмножество этого каркаса, которое предоставляет приложениям доступ на чтение / запись ко всей библиотеке Photos - недоступен в macOS.
Photos и PhotosUI присутствуют в macOS, но только для поддержки определенных функций расширения приложения:
- Расширение редактирования фотографий. Пользователь вызывает их из приложения "Фотографии", находясь в режиме "Правка" для одного ресурса, и он обеспечивает прямой доступ к данным фото / видео для этого ресурса, поэтому он даже не использует
PHAsset
учебный класс. - Расширение Фотопроекта. Они включают в себя сбор активов и выборочную загрузку данных для каждого, поэтому больше
PHAsset
/PHImageManager
Система присутствует. Тем не менее, это все еще сокращенное подмножество по сравнению с iOS (только то, что необходимо для расширения проекта, например, выборка ресурсов в этом проекте), и оно доступно только для расширений приложений, а не для отдельных приложений.
Если вам нужна полная платформа Photoshop для MacOS, лучше всего подать запрос на добавление функции в Apple.
Начиная с macOS 10.15 Catalina, фреймворки Photos и PhotosUI теперь доступны на Mac для приложений Catalyst и AppKit. Таким образом, вы должны иметь возможность перенести почти весь код iOS, который использует PhotoKit, в приложение Mac, если он имеет минимальное системное требование 10.15.