7
타사 라이브러리를 사용하여 사진 라이브러리에서 여러 이미지를 선택하고 있습니다. 여러 이미지를 선택하면 PHAsset 객체의 배열을 반환합니다. 이제 이러한 개체에 대한 URL (또는 일부 참조)을 핵심 데이터에 저장하려고합니다. 하지만 URL을 얻는 방법을 모르겠습니다. 사진 자료실에서 같은 이미지를 가져 오는 데 도움이 될 수있는 핵심 데이터에 저장할 수있는 다른 참조가 있습니까?PHAsset의 URL을 가져 오는 방법은 무엇입니까?
extension PHAsset {
func getURL(completionHandler : @escaping ((_ responseURL : URL?) -> Void)){
if self.mediaType == .image {
let options: PHContentEditingInputRequestOptions = PHContentEditingInputRequestOptions()
options.canHandleAdjustmentData = {(adjustmeta: PHAdjustmentData) -> Bool in
return true
}
self.requestContentEditingInput(with: options, completionHandler: {(contentEditingInput: PHContentEditingInput?, info: [AnyHashable : Any]) -> Void in
completionHandler(contentEditingInput!.fullSizeImageURL as URL?)
})
} else if self.mediaType == .video {
let options: PHVideoRequestOptions = PHVideoRequestOptions()
options.version = .original
PHImageManager.default().requestAVAsset(forVideo: self, options: options, resultHandler: {(asset: AVAsset?, audioMix: AVAudioMix?, info: [AnyHashable : Any]?) -> Void in
if let urlAsset = asset as? AVURLAsset {
let localVideoUrl: URL = urlAsset.url as URL
completionHandler(localVideoUrl)
} else {
completionHandler(nil)
}
})
}
}
}
감사 : 여기있다, 내가 스위프트 3.1로 변환 사방이 방법을 사용하기 위해 PHAsset의 확장에 넣어, – rick
프로젝트에이 코드가있는 PHAssetExtension.swift 파일을 추가하면 모든 곳에서 asset.getUrl ...을 수행해야하는 PHAsset 객체가 생깁니다. – diegomen
getURL에 매개 변수가 필요하지 않습니까? – rick