使用带 Swift 的 UIImapgePickerController 时如何获取所选图像的 URL?

How to get the URL of a selected image when using UIImapgePickerController with Swift?

以下代码崩溃,因为 'imageURLString' 是 NIL,我有点理解。但是玩弄 objectForKey 也没有把我带到伊甸园。有人可以给我一脚吗...? 谢谢!

PHImageManager.defaultManager().requestImageDataForAsset(item, options: nil){
    imageData,dataUTI,orientation,info in
    let imageURLString = info!["PHImageFileURLKey"] as! String
    let imageURL = NSURL(string: imageURLString)
    print("imageURL: \(imageURL)")
}

info!["PHImageFileURLKey"] 是准确的 NSURL。如果强制转换为 String。它会在这里崩溃。请参阅下面的代码以解决此问题。

PHImageManager.defaultManager().requestImageDataForAsset(item, options: nil){
    imageData,dataUTI,orientation,info in
    let imageURL = info!["PHImageFileURLKey"] as! NSURL
    //let imageURL = NSURL(string: imageURLString)
    print("imageURL: \(imageURL)")
}

或安全密码:

PHImageManager.defaultManager().requestImageDataForAsset(item, options: nil){
    imageData,dataUTI,orientation,info in

    if let _ = info {
         // info will not nil here
         if let imageURL = info!["PHImageFileURLKey"] as NSURL {
             print("imageURL: \(imageURL)")
         }
    }
    //let imageURL = NSURL(string: imageURLString)
    //print("imageURL: \(imageURL)")
}

希望对您有所帮助!

PHImageFileURLKey 直接 returns NSURL 那就是你的问题。您假设它是 String.