有人可以帮我解决这个错误吗?我正在尝试为我的应用程序实现Facebook登录按钮。
if var FBSDKAccessToken.currentAccessToken() {
fetchProfile()
}
}
func fetchProfile() {
print ("fetch profile")
let parameters = ["fields": "email, first_name, last_name, picture.type(large)" ]
FBSDKGraphRequest(graphPath: "me", parameters: parameters).startWithCompletionHandler { (connection, result, error) in
if error != nil {
print (error)
return
}
if let email = result["email"] as? String {
print (email)
}
print (result)
}
}
答案 0 :(得分:2)
if var FBSDKAccessToken.currentAccessToken()
没有任何意义。如果currentAccessToken()
返回bool,则只能是
if FBSDKAccessToken.currentAccessToken()
否则如果它返回一个可选项,则可以是
if let token = FBSDKAccessToken.currentAccessToken()
或
if let _ = FBSDKAccessToken.currentAccessToken()
答案 1 :(得分:1)
我正在使用let foo as
编写Switch语句,如下所示:
switch (vc) {
case let vc as SomeSubclass: ()
default: ()
}
我最终将其切换为if语句,但无意识地复制/粘贴了一些旧代码:
if let vc as SomeSubclass {
}
会产生错误:
条件中的模式匹配需要'case'关键字
if
当然需要更改为普通的if-let形式:
if let vc = vc as? SomeSubclass {
}