如何从 MacOS 的照片库中获取所有 PHAssets
How to get all PHAssets from MacOS's Photo Library
我想使用 PHAsset 解析我的 MacOS 照片库中的所有图像。然而,我发现的所有示例仅适用于 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];
我应该在 MacOS(版本 10.13)上使用什么 fetchAssets 命令,或者有其他方法吗?
照片框架——或者至少是该框架的主要子集,它为应用程序提供 read/write 访问整个照片库的权限——在 macOS 中不可用。
Photos 和 PhotosUI 存在于 macOS 中,但仅支持特定的应用程序扩展功能:
- 照片编辑扩展。用户在单个资产的编辑模式下从照片应用程序调用这些,它提供对该资产的 photo/video 数据的直接访问,因此它甚至不使用
PHAsset
class.
- 照片项目扩展。这些涉及资产集合并有选择地为每个资产加载数据,因此存在更多
PHAsset
/PHImageManager
系统。但是,与 iOS 相比,它仍然是一个缩减的子集(只有项目扩展所需的内容,例如获取该项目中的资产),并且它只能由应用程序扩展访问,而不是独立应用程序。
如果您想要 macOS 上的完整照片框架,最好的选择是 file a feature request with Apple。
从 macOS 10.15 Catalina 开始,Photos 和 PhotosUI 框架现已在 Mac 上可用,适用于 Catalyst 和 AppKit 应用程序。因此,您现在应该能够将几乎所有使用 PhotoKit 的 iOS 代码转移到您的 Mac 应用程序,只要它具有 10.15 作为最低系统要求。
我想使用 PHAsset 解析我的 MacOS 照片库中的所有图像。然而,我发现的所有示例仅适用于 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];
我应该在 MacOS(版本 10.13)上使用什么 fetchAssets 命令,或者有其他方法吗?
照片框架——或者至少是该框架的主要子集,它为应用程序提供 read/write 访问整个照片库的权限——在 macOS 中不可用。
Photos 和 PhotosUI 存在于 macOS 中,但仅支持特定的应用程序扩展功能:
- 照片编辑扩展。用户在单个资产的编辑模式下从照片应用程序调用这些,它提供对该资产的 photo/video 数据的直接访问,因此它甚至不使用
PHAsset
class. - 照片项目扩展。这些涉及资产集合并有选择地为每个资产加载数据,因此存在更多
PHAsset
/PHImageManager
系统。但是,与 iOS 相比,它仍然是一个缩减的子集(只有项目扩展所需的内容,例如获取该项目中的资产),并且它只能由应用程序扩展访问,而不是独立应用程序。
如果您想要 macOS 上的完整照片框架,最好的选择是 file a feature request with Apple。
从 macOS 10.15 Catalina 开始,Photos 和 PhotosUI 框架现已在 Mac 上可用,适用于 Catalyst 和 AppKit 应用程序。因此,您现在应该能够将几乎所有使用 PhotoKit 的 iOS 代码转移到您的 Mac 应用程序,只要它具有 10.15 作为最低系统要求。