Apple照片:从Photos.app获取“面部相册”列表

时间:2018-06-10 23:17:31

标签: ios swift photosframework

我想创建一个应用程序,您可以从Apple的照片应用程序中选择一张脸,该应用程序会在地图上探索这些照片。

到目前为止,我已经发现此查询会返回名为“People”的单个PHCollectionList

let peopleFolder = PHCollectionList.fetchCollectionLists(
  with: .smartFolder, 
  subtype: .smartFolderFaces, 
  options: nil).firstObject!

...但是我没有办法在这个文件夹中找到面孔。以下是我到目前为止所尝试的查询:

let people1 = PHCollectionList.fetchCollections(in: peopleFolder, options: nil)
let people2 = PHCollection.fetchCollections(in: peopleFolder, options: nil)
let people3 = PHAssetCollection.fetchCollections(in: peopleFolder, options: nil)

...但所有这三个都返回空PHFetchResult

有没有办法在用户的照片库中获取Faces列表?

1 个答案:

答案 0 :(得分:0)

我最好的猜测是,苹果公司不希望应用程序访问此信息,因为它是高度私有的信息。我建议提起雷达,并希望他们在将来的macOS版本中以某些应用程序特权来打开它。

另一个选择是直接从磁盘上的照片库访问sqlite数据库文件(如此处How to access People album used in Apple's Photos app所示),但是内部格式可以随时更改。