Facebookgraphics对象/实体parsingSwift中的SDK 4
在Swift中,如何parsingfbkgraphics请求的结果? 我有一个嵌套字典,并转换为[String:String]不起作用。 我已经铸造了NSDictionary,它适用于1级,但任何嵌套开始抱怨optionals和铸造。 我从转换中看到,FBGraphObject已被弃用,那么现在SDK 4中的正确方法是什么?
我的数据看起来像
{ data = { "is_silhouette" = 0; url = "..."; }; }
我可以
var data = photoRes["data"] as? NSDictionary
要得到
Optional({ "is_silhouette" = 0; url = "...; })
我不知道如何parsing这个对象…
编辑现在我有它的工作
var data = photoRes["data"] as? NSDictionary var urlStr = data!["url"] as? String if urlStr != nil { let url = NSURL(fileURLWithPath: urlStr!) //my code... }
但是这是一个复杂的方法,特别是如果返回的结果是高度嵌套的。 有没有更好的方法去做这件事?
创build一个字典:
class ViewController: UIViewController { var dict : NSDictionary! }
获取数据:
if((FBSDKAccessToken.currentAccessToken()) != nil){ FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "id, name, first_name, last_name, picture.type(large), email"]).startWithCompletionHandler({ (connection, result, error) -> Void in if (error == nil){ self.dict = result as NSDictionary println(self.dict) NSLog(self.dict.objectForKey("picture")?.objectForKey("data")?.objectForKey("url") as String) } }) }
输出应该是:
{ email = "ashishkakkad8@gmail.com"; "first_name" = Ashish; id = 910855688971343; "last_name" = Kakkad; name = "Ashish Kakkad"; picture = { data = { "is_silhouette" = 0; url = "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-xfa1/v/t1.0-1/s200x200/22501_915701971820048_9046303472199214595_n.jpg?oh=f3b3564f1450c13332b3067a135cad5d&oe=55C71792&__gda__=1443571904_c4667dcb08d85682edfd77a90ee9c3ab"; }; }; } 2015-05-25 22:12:34.015 SwiftFB[2713:7830] https://fbcdn-profile-a.akamaihd.net/hprofile-ak-xfa1/v/t1.0-1/s200x200/22501_915701971820048_9046303472199214595_n.jpg?oh=f3b3564f1450c13332b3067a135cad5d&oe=55C71792&__gda__=1443571904_c4667dcb08d85682edfd77a90ee9c3ab
这混乱为我工作。 我正在使用SWIFT 3.01和FB Swift SDK
if let responseDictionary = response.dictionaryValue { print(responseDictionary["name"] ?? "") let a = responseDictionary["picture"] as! NSDictionary let b = a["data"] as! NSDictionary let c = b["url"] print(c ?? "")