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