我想使用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命令,还是有其他方法可以这样做?
答案 0 :(得分:3)
照片框架 - 或者至少是该框架的主要子集,它为应用程序提供对整个照片库的读/写访问权限 - 在macOS中不可用。
照片和PhotosUI存在于macOS中,但仅支持特定的应用扩展功能:
PHAsset
类。PHAsset
/ PHImageManager
系统。但是,与iOS相比,它仍然是一个缩小的子集(只有项目扩展所需的内容,比如获取该项目中的资产),并且只能访问应用扩展,而不能访问独立应用。如果您想在macOS上使用完整的照片框架,最好的选择是file a feature request with Apple。
答案 1 :(得分:1)
从macOS 10.15 Catalina开始,Mac和Catalyst和AppKit应用程序现在都可以使用Photos和PhotosUI框架。因此,只要最低系统要求为10.15,您就应该能够将几乎所有使用PhotoKit的iOS代码转移到Mac应用程序上。