按关键字搜索iOS照片?

按关键字搜索iOS照片?,ios,react-native,search,photo,photokit,Ios,React Native,Search,Photo,Photokit,苹果的照片应用程序允许用户使用诸如“冲浪”、“食物”、“天空”等搜索关键词查询照片 一个拥有摄像头和照片权限的第三方iOS应用程序如何使用任意字符串搜索手机的摄像头卷 。我们可以传递字符串作为一种可能的方法,还是有更好的方法 即使经过更长时间的研究,我也找不到办法。但好消息是,你可以使用与在照片应用程序中获得结果完全相同的神经网络来构建自己的搜索索引。以下是一些示例代码: let fetchOptions = PHFetchOptions() let fetchResult

苹果的照片应用程序允许用户使用诸如“冲浪”、“食物”、“天空”等搜索关键词查询照片

一个拥有摄像头和照片权限的第三方iOS应用程序如何使用任意字符串搜索手机的摄像头卷

。我们可以传递字符串作为一种可能的方法,还是有更好的方法


即使经过更长时间的研究,我也找不到办法。但好消息是,你可以使用与在照片应用程序中获得结果完全相同的神经网络来构建自己的搜索索引。以下是一些示例代码:

let fetchOptions = PHFetchOptions()           
let fetchResult = PHAsset.fetchAssets(with: fetchOptions)
fetchResult.enumerateObjects { asset, index, pointer in
    self.assetManager.requestImage(for: asset,
                                   targetSize: CGSize(width: 150, height: 100), 
                                   contentMode: .aspectFit, 
                                   options: .none) { image, metadata in
            if let uiImage = image, let cgImage = uiImage.cgImage {
                let requestHandler = VNImageRequestHandler(cgImage: cgImage)
                let request = VNClassifyImageRequest()
                try? requestHandler.perform([request])
                let results = request.results as! [VNClassificationObservation]
                // Filter the 1303 classification results, and use them in your app
                // in my case, fullfill promise with a wrapper object
                promise(.success(ClassifiedImage(imageIdentifier: asset.localIdentifier,
                                classifications: results.filter { $0.hasMinimumPrecision(0.9, forRecall: 0.0) }.map{
                                    ($0.identifier, nil)
                                    })))
            }

        }
}
更多信息:

另请注意:在构建搜索索引时,您可以在获取资产时使用类
PHAsset
localIdentifier