ios - 如何不从照片库 iOS 中获取屏幕截图

我正在尝试从照片库中获取照片,并且我只想显示照片库中的图像。我不想显示视频。

我正在使用 PHFetchOptions 从照片库中获取 PHAssets。我还提供了一个谓词来只获取照片。下面是我的代码:

let allPhotosOptions = PHFetchOptions()
allPhotosOptions.predicate = NSPredicate(format: "mediaType == 1")
allPhotosOptions.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: true)]
fetchResult = PHAsset.fetchAssets(with: allPhotosOptions)

但是我也收到了屏幕截图。我不想获取屏幕截图。我发现也有一个属性。它被称为 PHAssetMediaSubtype.photoScreenshot

我更新了谓词以不获取屏幕截图,但它似乎不起作用。我的许多其他图像也被过滤了,它们不是屏幕截图。下面是我更新的谓词代码

 allPhotosOptions.predicate = NSPredicate(format: "mediaType == 1 AND mediaSubtypes != %d", PHAssetMediaSubtype.photoScreenshot.rawValue)

最佳答案

你试过吗?似乎在 NSPredicate 上说 NOT 是很简单的

allPhotosOptions.predicate = NSPredicate(format: "(mediaType == 1) AND ((mediaSubtype & %d) != 0)", PHAssetMediaSubtype.photoScreenshot.rawValue)

从 this 中获取此片段Apple 开发者论坛帖子

https://stackoverflow.com/questions/60483180/

相关文章:

googlebot - 是否可以让 fail2ban 忽略谷歌?

google-cloud-bigtable - BigTable是否允许设置微时间戳粒度

python - 加载模型时没有 GPU 的机器上的 Cuda 驱动程序错误

typescript - 如何在 WebStorm/IntelliJ 中使用 ts-node 导入项

reactjs - 在 react-testing-library 中使用 getByRole 按可

reactjs - 如何测试 componentWillUnmount

amazon-web-services - 如何让我的 Auth0 权限进入 AWS HTTP AP

node.js - 找不到 NodeJS nodegui 模块

vue.js - 元标记在 Nuxt.js 应用程序的页面源中无法正确显示

npm - 错误 : pngquant failed to build, 确保安装了 libpng-