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

时间:2015-10-21 19:53:19

标签: swift uiimagepickercontroller swift2

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

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)")
}

2 个答案:

答案 0 :(得分:2)

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)")
}

希望有所帮助!

答案 1 :(得分:1)

PHImageFileURLKey直接返回NSURL,这就是您的问题。你假设它是String