我想使用 PHAsset 解析我的 MacOS 照片库中的所有图像.然而,我发现的所有示例都只适用于 iOS,如下所示,其中检索 Assets 的最后一行在 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];
我应该在 MacOS(版本 10.13)上使用什么 fetchAssets 命令,或者有其他方法吗?
最佳答案
Photos 框架——或者至少是该框架的主要子集,它为应用程序提供对整个 Photos 库的读/写访问权限——在 macOS 中不可用。
Photos 和 PhotosUI 存在于 macOS 中,但仅用于支持特定的应用程序扩展功能:
- 照片编辑扩展。用户在单个 Assets 的编辑模式下从照片应用程序调用这些,它提供对该 Assets 的照片/视频数据的直接访问,因此它甚至不使用
PHAsset
类。 - 照片项目扩展。这些涉及 Assets 集合并有选择地为每个 Assets 加载数据,因此存在更多的
PHAsset
/PHImageManager
系统。但是,与 iOS 相比,它仍然是一个缩减的子集(只有项目扩展所需的内容,例如获取该项目中的 Assets ),并且它只能由应用程序扩展程序访问,而不是独立应用程序。
如果您想要 macOS 上的完整照片框架,最好的选择是 file a feature request with Apple .
关于objective-c - 如何从 MacOS 的照片库中获取所有 PHAssets,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47652944/