こんにちは、これが私の問題であることがわかりました:ユーザーを認証するための関数を介してAlamofireを呼び出していました: "Login User"関数を使用しました。文字列)渡されます
私のエラーは正確でした:
optional(alamofire.aferror.responseserializationfailed(alamofire.aferror.responseserializationfailurereason.jsonserializationfailed(error domain = nscocoaerrordomain code = 3840 "文字0の周りの無効な値。" userinfo = {nsdebugdescription =文字0の周りの無効な値
ここで重要なのは文字0です。つまり、「電子メール」の呼び出しがパラメーターと一致していませんでした。以下のコードを参照してください
func loginUser(email:String、password:String、completed:@escaping downloadComplete){let lowerCasedEmail = email.lowercased()
let header = [
"Content-Type" : "application/json; charset=utf-8"
]
let body: [String: Any] = [
"email": lowerCasedEmail,
"password": password
]
Alamofire.request(LOGIN_USER, method: .post, parameters: body, encoding: JSONEncoding.default, headers: header).responseJSON { (response) in
if response.result.error == nil {
if let data = response.result.value as? Dictionary<String, AnyObject> {
if let email = data["user"] as? String {
self.userEmail = email
print(self.userEmail)
}
if let token = data["token"] as? String {
self.token_Key = token
print(self.token_Key)
}
関数パラメーターの "email"は、解析時にlet "email"と一致する必要があります。そうすると機能します。エラーは発生しなくなりました...そして、Alamofireリクエストの "body"パラメーターの "email"は文字0でした:
お役に立てれば
responseJSON() { ... }
ブロックをコメントアウトしてに置き換えること.responseString { _, _, s, _ in println(s) }
です。あなたはでそれがunparsibleになるだろう任意の奇数のテキストを探すために返されるJSONを確認することができますそのresponseJSON