ant*_*n68 4 ios swift swift4 ios11 ios12
我想从用户手机上的所有智能相册中获取图像资产。目前,我正在获取图像和视频,但是那不是我想要的。
在我的研究中,我总是找到相同的解决方案,但由于问题已有数年之久,它似乎不再起作用。所以我找不到任何最新的解决方案。
这是我找到的解决方案
let fetchOptions = PHFetchOptions()
fetchOptions.predicate = NSPredicate(format: "mediaType = %d", PHAssetMediaType.image.rawValue)
let smartAlbums = PHAssetCollection.fetchAssetCollections(with: .smartAlbum, subtype: .any, options: fetchOptions)
let fetchAssetsResult = PHAsset.fetchAssets(in: collection, options: fetchOptions)
Run Code Online (Sandbox Code Playgroud)
在执行此行代码时,我收到以下错误消息
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unsupported predicate in fetch options: mediaType == 1'
Run Code Online (Sandbox Code Playgroud)
有什么新的工作解决方案吗?
在Bappaditya的帮助下,我发现我对错误的资产提取使用了谓词。mediaType密钥仅用于(PHAsset.fetchAsset()
而不是)PHAssetCollection.fetchAssetCollection()
我使用过的密钥。
该代码现在正在工作
let fetchOptions = PHFetchOptions()
let smartAlbums = PHAssetCollection.fetchAssetCollections(with: .smartAlbum, subtype: .any, options: fetchOptions)
fetchOptions.predicate = NSPredicate(format: "mediaType == %d", PHAssetMediaType.image.rawValue)
let fetchAssetsResult = PHAsset.fetchAssets(in: collection, options: fetchOptions)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
509 次 |
最近记录: |