在我的应用中,我使用此代码获取所有照片(PHAsset
)
PHPhotoLibrary.requestAuthorization { (status) in
switch status {
case .authorized:
print("Good to proceed")
let fetchOptions = PHFetchOptions()
let allPhotos = PHAsset.fetchAssets(with: .image, options: fetchOptions)
print("Found \(allPhotos.count) images")
case .denied, .restricted:
print("Not allowed")
case .notDetermined:
print("Not determined yet")
@unknown default:
fatalError()
}
}
我有两个问题:
答案 0 :(得分:0)
似乎无法直接实现。
但是,您可以按系统智能专辑,时刻或专辑进行分类(结果为PHAssetCollection类型)。
快速5
智能相册
let systemAlbums = PHAssetCollection.fetchAssetCollections(with: .smartAlbum, subtype: .albumRegular, options: nil)
时刻
let systemAlbums = PHAssetCollection.fetchAssetCollections(with: .moment, subtype: .albumRegular, options: nil)
相册
let systemAlbums = PHAssetCollection.fetchAssetCollections(with: .album, subtype: .albumRegular, options: nil)
,并且还可以显示用户的相册(获取结果是包含用户集合的PHCollection类型)
let userAlbums = PHCollectionList.fetchTopLevelUserCollections(with: nil)
此外: 您不必每次都请求授权,系统会在第一次调用每个相关功能时提醒用户并请求授权。
有一个有关浏览照片的示例代码。Browsing and Modifying Photo Albums
答案 1 :(得分:0)
目前没有公共API可以访问第三方应用程序中的类别。