前提・実現したいこと
swiftUIを利用してアプリを開発しています。
APIを利用してユーザー登録の動きをする際のreciaveDataに含まれる値をStringとして扱いたいです。
例えば、
print("The request is: " + receivedData.description)
としたときのコンソールの表示が以下のようになる場合、
The request is: ["email": <__NSSingleObjectArrayI 0x6000035e16d0>( 他のユーザーがこのメールアドレスを使用しています。 ) ]
他のユーザーがこのメールアドレスを使用しています。
ここの部分のみ、値をして取得し利用したいのですが、正しい方法がわかりません。
試したこと
guard let email = receivedData["email"] else { print("Could not get email ") return } print("The email is: (email)")
上記のコードですと、"email"の値は取得しているのですが、NSSingleObjectArray
の形で取得(推測)されているためか、下記のような出力となります。
The email is: ( "\U4ed6\U306e\U30e6\U30fc\U30b6\U30fc\U304c\U3053\U306e\U30e1\U30fc\U30eb\U30a2\U30c9\U30ec\U30b9\U3092\U4f7f\U7528\U3057\U3066\U3044\U307e\U3059\U3002" )
この表示をStrigの値として利用するにはどのようにすれば良いでしょうか?
対象のコード
swift
1 func makeRegistration() { 2 3 let endpoint: String = "https://sample.com/api/registration/" 4 guard let url = URL(string: endpoint) else { 5 return 6 } 7 8 var urlRequest = URLRequest(url: url) 9 urlRequest.httpMethod = "POST" 10 urlRequest.httpBody = "email=sample@sample.com&password1=password1&password2=password2".data(using: .utf8) 11 12 let session = URLSession.shared 13 14 let task = session.dataTask(with: urlRequest) { 15 (data, response, error) in 16 guard error == nil else {return} 17 guard let responseData = data else {return} 18 do { 19 guard let receivedData = try JSONSerialization.jsonObject(with: responseData, 20 options: []) as? [String: Any] else {return} 21 print("The request is: " + receivedData.description) 22 23 guard let email = receivedData["email"] else { 24 print("Could not get email ") 25 return 26 } 27 print("The email is: (email)") 28 29 } catch {return} 30 } 31 task.resume() 32 }
補足情報(FW/ツールのバージョンなど)
Xcode : Version 12.0.1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/16 08:07
2020/10/16 08:18
2020/10/16 08:20
2020/10/16 08:38
2020/10/16 08:40
2020/10/16 08:44