Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/119.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Facebook登录-错误消息:可选类型的值';任何?';没有打开包装;你是想用'';还是'';?_Ios_Swift_Facebook Graph Api - Fatal编程技术网

Ios Facebook登录-错误消息:可选类型的值';任何?';没有打开包装;你是想用'';还是'';?

Ios Facebook登录-错误消息:可选类型的值';任何?';没有打开包装;你是想用'';还是'';?,ios,swift,facebook-graph-api,Ios,Swift,Facebook Graph Api,我对斯威夫特还不太熟悉,犯了一些错误 我正在尝试创建Facebook登录。我想访问登录时使用的电子邮件地址 我这样设置参数: class ViewController: UIViewController, FBSDKLoginButtonDelegate { let loginButton: FBSDKLoginButton = { let button = FBSDKLoginButton() button.readPermissions = ["email"] re

我对斯威夫特还不太熟悉,犯了一些错误

我正在尝试创建Facebook登录。我想访问登录时使用的电子邮件地址

我这样设置参数:

class ViewController: UIViewController, FBSDKLoginButtonDelegate {

let loginButton: FBSDKLoginButton = {
    let button = FBSDKLoginButton()
    button.readPermissions = ["email"]
    return button
}()

override func viewDidLoad() {
    super.viewDidLoad()


    view.addSubview(loginButton)
    loginButton.center = view.center
    loginButton.delegate = self

    if let token = FBSDKAccessToken.current() {
    fetchProfile()
    }
}

func fetchProfile() {
    print("FETCdfsdffdssdfdsfsdgvfsebgrwntynbdtyndghHED")

    let parameters = ["fields": "email, first_name, last_name, picture.type(large)"]

    FBSDKGraphRequest(graphPath: "me", parameters: parameters).start {(connection, result, error) -> Void in
        if error != nil {
            NSLog(error.debugDescription)
            return
        }

        // Result
        print("Result: \(result)")

        // Handle vars
        if let result = result as? [String:String],
            let email: String = result["email"],
            let fbId: String = result["id"] {
            print("Email: \(email)")
            print("fbID: \(fbId)")
        }
    }
}
我不明白这个错误以及它为什么抱怨。

像这样使用:

if let data = result as? [String: Any],
    let email = data["email"] {
    print(email)
}

在您的项目中尝试以下示例

Swift-3

           // Parameters for Graph Request
            let parameters = ["fields": "email, first_name, last_name, picture.type(large)"]

            FBSDKGraphRequest(graphPath: "me", parameters: parameters).start {(connection, result, error) -> Void in
                if error != nil {
                    NSLog(error.debugDescription)
                    return
                }

                // Result
                print("Result: \(result)")

                // Handle vars
                if let result = result as? [String:String],
                    let email: String = result["email"],
                    let fbId: String = result["id"] {
                    print("Email: \(email)")
                    print("fbID: \(fbId)")
                }
            }

您在哪一部分遇到此错误?是
print(error)
?您尝试过这种方式吗
print(error??)
当您尝试这种方式时,打印结果是什么您尝试过这种方式吗
print(“error:\(error)”)
instated
print(error)
希望它能解决您的问题error@NazmulHasan因此,错误出现在-->if let email=result[“email”]as!一串{//build在电子邮件中失败此答案未满足原始问题want and Error谢谢!您的代码运行,但未将电子邮件返回给。只有名称和id…您可以向我显示您的所有代码吗?因为我收到电子邮件和FIDOK。所以我在顶部更新了我的代码。感谢您帮助我解决问题Vishalpethani我想您收到了电子邮件和f出价太高了。很高兴帮助你@jaelee