为什么我需要在字典中对字符串值进行字符串插值

时间:2018-02-15 12:28:55

标签: ios json swift

我是初学者,我发送登录服务器的请求,服务器需要用户名,密码,密码和注册ID(Firebase云消息的令牌),正如我们在下面看到的那样,regID实际上是一个字符串

enter image description here

但为什么我需要对regID进行字符串插值?

我认为在parameters字典中,如果我只写regID作为“registrationId”的值,那就没关系

"registrationId" : regID 
像那样,

但它不起作用,服务器将不会收到该registrationID ,所以我必须这样写

"registrationId" : "\(regID)"

regID实际上是一个字符串,但我不明白为什么我必须对字符串值进行字符串插值。我使用的代码在

之下
     @IBAction func loginButtonDidPressed(_ sender: Any) {

                self.activityIndicator.startAnimating()


                guard let regID = registrationID else {return}

                // send request to server
                let url = URLService.login.endPoint

                let parameters = [
                    "loginUser" : usernameTextField.text!,
                    "password" : passwordTextField.text!,
                    "registrationId" : "\(regID)",
                    "key" : "@PakuAttendance20171207@"

                ]

// the networking service below is actually alamofire
                NetworkingService.fetchJSON(url: url, methodUsed: .post, parameters: parameters) { (result) in

                    switch result {
                    case .failure(let error) :
                        self.activityIndicator.stopAnimating()
                        self.showAlert(alertTitle: "Sorry", alertMessage: error.localizedDescription, actionTitle: "Back")
                    case .success(let jsonFromServer) :

        }

registrationID值为:

  

dYhReMYcbZs:APA91bGK9fH_Xa5lctmuH3e4m1zY9gUsVMfR34zsBHoVYStLITIcWZKr30Mu-0NqLuSE-rr25V2BnwAdpWvdAzW7i1BNFokz33pEoSr2fBZd468z0SwOGTytnrFHdNKFhTlGFHNZF3

1 个答案:

答案 0 :(得分:1)

你不需要字符串插值。你是对的:

"registrationId" : regID 

就够了。