我想创建一个应用程序,您可以从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列表?
答案 0 :(得分:0)
我最好的猜测是,苹果公司不希望应用程序访问此信息,因为它是高度私有的信息。我建议提起雷达,并希望他们在将来的macOS版本中以某些应用程序特权来打开它。
另一个选择是直接从磁盘上的照片库访问sqlite数据库文件(如此处How to access People album used in Apple's Photos app所示),但是内部格式可以随时更改。