質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

1回答

2445閲覧

【swift / POST送信の際にNSDataに関するエラー】

NobumitsuHata

総合スコア141

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2016/03/05 09:52

swift

1 @IBAction func login(sender: AnyObject) { 2 3 // 通信先のURLを生成. 4 let urlString = "http://laugher.sakura.ne.jp" 5 // POST用のリクエストを生成. 6 let request = NSMutableURLRequest(URL: NSURL(string: urlString)!) 7 8 // POSTのメソッドを指定. 9 request.HTTPMethod = "POST" 10 11 request.addValue("application/json", forHTTPHeaderField: "Content-Type") 12 13 // 名前取得 14 let nameContent = name.text 15 16 // 送信するデータをJSON形式 17 let params: [String: AnyObject] = [ 18 "name": nameContent! 19 ] 20 21 do { 22 var abc = try NSJSONSerialization.JSONObjectWithData(params, options: .MutableContainers) as! NSDictionary 23 24 // エラーが起こらなければ後続の処理... 25 } catch { 26 // エラーが起こったらここに来るのでエラー処理などをする 27 } 28 29 30 let task = NSURLSession.sharedSession().dataTaskWithRequest(request, completionHandler: {data, response, error in 31 if (error == nil) { 32 let result = NSString(data: data!, encoding: NSUTF8StringEncoding)! 33 print(result) 34 } else { 35 print(error) 36 } 37 }) 38 task.resume() 39 40 } 41

do catch の中にあるparamsでエラーが起きました!
エラー文は Cannot convert value of type '[String : AnyObject]' to expected argument type 'NSData'です

paramsをどうすればいいのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

Cannot convert value of type '[String : AnyObject]' to expected argument type 'NSData'

読んだ通りです。例えば,String型のstrの場合
let data = str.dataUsingEncoding(NSUTF8StringEncoding)
のように変換できます。

ただしAnyObjectと定義されているので,AnyObjectの型によって場合分けをする必要が出てくるでしょう。

投稿2016/03/05 10:10

NCC1701

総合スコア1680

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問