Swift Alamofire 意外发现 nil - Facebook API
Swift Alamofire Unexpectedly found nil - Facebook API
我 运行 使用 Alamofire 和 SwiftyJSON 为 Instagram 和 Youtube API 提供完全相同的功能;然而,使用 Facebook 的 API 我得到致命错误:在展开可选值时意外发现 nil。
var posts : [JSON] = []
func loadFBFeed() {
let url = "https://graph.facebook.com/mpstnews/posts/?access_token=\(apiKey)&date_format=U&fields=comments.limit(0).summary(1),likes.limit(0).summary(1),from,picture,message,story,name,link,created_time,full_picture&limit=5"
Alamofire.request(.GET, url).responseJSON { (request, response, json) -> Void in
switch json {
case .Success(let data):
let jsonObj = JSON(data)
if let postInfo = jsonObj["data"].arrayValue as [JSON]? {
self.posts = postInfo
self.tableView.reloadData()
}
case .Failure(_, let error):
print("Request failed with error: \(error)")
}
}
}
这通常发生在您的 URL 无效时。您插入 URL 的值很可能是错误的,导致 URLStringConvertible
逻辑崩溃。
URL 使用了 Alamofire 不喜欢的字符,不得不添加一行来解决...
var urlString = "https://graph.facebook.com/mpstnews/posts/?access_token=\(apiKey)&date_format=U&fields=comments.limit(0).summary(1),likes.limit(0).summary(1),from,picture,message,story,name,link,created_time,full_picture&limit=5"
urlString = urlString.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())!
我 运行 使用 Alamofire 和 SwiftyJSON 为 Instagram 和 Youtube API 提供完全相同的功能;然而,使用 Facebook 的 API 我得到致命错误:在展开可选值时意外发现 nil。
var posts : [JSON] = []
func loadFBFeed() {
let url = "https://graph.facebook.com/mpstnews/posts/?access_token=\(apiKey)&date_format=U&fields=comments.limit(0).summary(1),likes.limit(0).summary(1),from,picture,message,story,name,link,created_time,full_picture&limit=5"
Alamofire.request(.GET, url).responseJSON { (request, response, json) -> Void in
switch json {
case .Success(let data):
let jsonObj = JSON(data)
if let postInfo = jsonObj["data"].arrayValue as [JSON]? {
self.posts = postInfo
self.tableView.reloadData()
}
case .Failure(_, let error):
print("Request failed with error: \(error)")
}
}
}
这通常发生在您的 URL 无效时。您插入 URL 的值很可能是错误的,导致 URLStringConvertible
逻辑崩溃。
URL 使用了 Alamofire 不喜欢的字符,不得不添加一行来解决...
var urlString = "https://graph.facebook.com/mpstnews/posts/?access_token=\(apiKey)&date_format=U&fields=comments.limit(0).summary(1),likes.limit(0).summary(1),from,picture,message,story,name,link,created_time,full_picture&limit=5"
urlString = urlString.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())!