如何解包 swift 中的回调?
How to unwrap an callback in swift?
我在 Swift 中为我的应用程序使用 FB 登录,当我发出图形请求时,returns 结果如下:
Optional({
email = "arjun.ramjams@gmail.com";
id = 10218497873670001;
name = "Arjun Ram";
})
现在,我应该如何阅读每个单独的值(即:电子邮件、ID 和姓名)?
result
是类型 [String:Any]?
的 Dictionary
。
let result:[String:Any]? = [
"email":"arjun.ramjams@gmail.com",
"id" : 10218497873670001,
"name":"Arjun Ram"
]
您可以从 result
中获取字段,例如,
let email = result?["email"] as? String
let id = result?["id"] as? Int
let name = result?["name"] as? String
您需要使用 if let
或 guard let
来展开对象或变量
例如:
if let result = result as? [String: Any] {
print(result[“email”])
}
或
guard let result = result as? [String: Any] else {
// return something
}
func fetchProfile() {
let parameters = ["fields": "id,email, first_name, last_name"]
GraphRequest(graphPath: "me",parameters: parameters).start{(connection, user, Err) in
if Err != nil {
print(Err!)
return
}
let dic = user as! NSDictionary
let userID = dic["id"] as! String
let Email = dic["email"] as! String
let fname = dic["first_name"] as! String
let lname = dic["last_name"] as! String
}
}
我在 Swift 中为我的应用程序使用 FB 登录,当我发出图形请求时,returns 结果如下:
Optional({
email = "arjun.ramjams@gmail.com";
id = 10218497873670001;
name = "Arjun Ram";
})
现在,我应该如何阅读每个单独的值(即:电子邮件、ID 和姓名)?
result
是类型 [String:Any]?
的 Dictionary
。
let result:[String:Any]? = [
"email":"arjun.ramjams@gmail.com",
"id" : 10218497873670001,
"name":"Arjun Ram"
]
您可以从 result
中获取字段,例如,
let email = result?["email"] as? String
let id = result?["id"] as? Int
let name = result?["name"] as? String
您需要使用 if let
或 guard let
来展开对象或变量
例如:
if let result = result as? [String: Any] {
print(result[“email”])
}
或
guard let result = result as? [String: Any] else {
// return something
}
func fetchProfile() {
let parameters = ["fields": "id,email, first_name, last_name"]
GraphRequest(graphPath: "me",parameters: parameters).start{(connection, user, Err) in
if Err != nil {
print(Err!)
return
}
let dic = user as! NSDictionary
let userID = dic["id"] as! String
let Email = dic["email"] as! String
let fname = dic["first_name"] as! String
let lname = dic["last_name"] as! String
}
}