如何使用swift使用Mac中的照片框架从照片库中检索所有图像?

时间:2018-01-22 04:09:51

标签: swift macos fetch photos phphotolibrary

我正在尝试使用swift从照片库中检索图像。这是适用于iOS的以下代码:

func fetchPHAssets() -> [PHAsset] {
   var assets = [PHAsset]()
   let options = PHFetchOptions.init()

   options.predicate = NSPredicate.init(format: "(mediaSubtype & %d) != 0", PHAssetMediaSubtype.photoScreenshot.rawValue)
    let fetchAssets: PHFetchResult = PHAsset.fetchAssets(with: .image, options: options)

 fetchAssets.enumerateObjects({ (asset, _, _) in
            assets.append(asset)
  })

  return assets
}

Mac应用的照片框架没有采用子类型的PHAsset.fetchAssets方法。所以我尝试了下面的代码来获得结果:

func fetchPHAssets() -> [PHAsset] {
   var assets = [PHAsset]()
   let options = PHFetchOptions.init()

   //retrieve only screen shots
   options.predicate = NSPredicate.init(format: "(mediaSubtype & %d) != 0", PHAssetMediaSubtype.photoScreenshot.rawValue)

   let fetchAssets: PHFetchResult = PHAsset.fetchAssets(in: PHAssetCollection.init(), options: nil)

   fetchAssets.enumerateObjects({ (asset, _, _) in
       assets.append(asset)
   })         
   return assets
}

但结果是0。

我试着查看文档,但写得很差,没有任何解释。在线探索能够找到仅适用于iOS应用的示例。任何形式的帮助表示赞赏。感谢。

0 个答案:

没有答案