URL的内容以nil的形式返回

时间:2015-03-05 13:43:10

标签: cocoa-touch swift facebook-graph-api

我正在做一个fb请求,当我尝试将URL的内容转换为NSData时,它返回为nil?我无法解决我出错的地方,我的代码是:

 func fbRequestCompletionHandler(connection:FBRequestConnection!, result:AnyObject!, error:NSError!){
        if let gotError = error{
            //got error
        }
        else{

            let email = result["email"]
            let firstName = result["first_name"]
            let userFBID = result["id"]
            println(userFBID) //PRINTS THE CORRECT ID
            let userImageURL = "https://graph.facebook.com/\(userFBID)/picture?type=small"

            let url = NSURL(fileURLWithPath: userImageURL)

            let imageData = NSData(contentsOfURL: url!)

            println(imageData) //PRINTS AS NIL
}
}

1 个答案:

答案 0 :(得分:0)

使用网址的NSData init方法的定义定义为:

init?(contentsOfURL url: NSURL)

?表示它返回一个可选类型,因此返回值可以是nil。您可以确定问题所在:

var error: NSError?
if let imageData = NSData(contentsOfURL: url!, options: NSDataReadingOptions(0), error: &error) {
    // Success
}
else {
    println("An error occurred: \(error.localizedDescription)")
}