2016-07-11 5 views
0

妥当な時間で解決されるにはあまりに複雑だった私のコードです:スウィフト文字列の建設はここ

let request = NSMutableURLRequest(URL: NSURL(string: "http://www.example.com/submit.php")!) 
request.HTTPMethod = "POST" 
let postString = "user_name="+user_name+"&first_name="+first_name.text+"&last_name="+last_name.text+"&company_name="+company_name.text+"&location="+location.text+"&phone="+phone.text+"&website="+website.text+"&email="+email.text+"&about="+about.text 
request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding) 
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) { data, response, error in 
    let responseString = NSString(data: data!, encoding: NSUTF8StringEncoding) 
    print("responseString = \(responseString)") 
} 
task.resume() 

私はアプリを実行しようとすると、それは私にpostStringに次のエラーを与える:

表現は合理的な時間に解決するには複雑すぎました。 (これはまた、あなたのコードの可読性と保守性を向上させるソリューションは、最初のパラメータとその値を持つ辞書を作成します

let parameters = ["user_name" : user_name, 
    "first_name" : first_name.text, 
    "last_name" : last_name.text, 
    "company_name" : company_name.text, 
    "location" : location.text, 
    "phone" : phone.text, 
    "website" : website.text, 
    "email" : email.text, 
    "about" : about.text].map { "\($0)=\($1 ?? "")" } 
let postString = parameters.joinWithSeparator("&") 

:これを試してみてください

+0

コンパイラがあなたを語っているものを行うと、アレイ内のすべての文字列を結合して文字列を作成します。同じ表現ですべてを詰め込むのではなく、いくつかのものを作ると、コンパイラが何が起こるかを知るのに役立ちます。 :) – Moritz

+0

@EricDそれに感謝します。どうすればいい? – johnniexo88

+0

あなたは 'postString'という大きな宣言をしています。一つの行にStringに追加する変数がたくさんあります。代わりに、名前のようにまずその一部を作り、これを変数に格納します。別の行を使用して残りを追加します。 'let names = xxx + xxx'のように' let postString = names + xxx + xxx'など。 – Moritz

答えて

1

の異なる部分式への発現を分割を検討)。

そしてそれはkey=valueを含む文字列の配列にそれを回す、その辞書の「マップ」を実行します(およびUITextFieldtextので、オプションである場合、それはゼロだ場合には、空の文字列に設定されます)。

最後に、それは、セパレータ&

+0

これはどういう意味ですか?.map {" \($ 0) "map"は、辞書を文字列の配列$ 0 =キーと$ 1 =辞書の値に変換しますmap関数の詳細についてはhttp://($ 1 ?? "") "}' – johnniexo88

+0

//useyourloaf.com/blog/swift-guide-to-map-filter-reduce/要するに、マッピングしている要素のすべての要素について、この関数を実行し、その関数の戻り値を新しい配列に格納する – Mattias

関連する問題