2017-10-16 2 views
0

をエスケープします不一致の種類「文字列」と「文字」」私が追加した場合、同じは、どのように私はちょうどURLENCODEこのしかし、どのように私はこれを達成するだろう可能性を知っているスウィフト文字列中の%記号

『%% 20』

+1

あなたはこの方向にあまりにも深く行く前に、それはあなたが達成したいことは何ですか?文字列をエスケープして有効なURLにしますか? –

+0

ええ、その何よりも自分自身のための運動。 – PruitIgoe

答えて

1

あなただけの練習のためにこれをやっている場合、それはOKです。プロダクションコードの場合、URL文字列をエスケープする最も良い方法はURLComponents構造体です。

あなたの問題の解決方法は、閉鎖の返品タイプです。はString$0Characterです。 Swiftはそのタイプを推論する方法を知らない。

これに変更し、それは:

let strReturn = strToConvert.characters.map { 
    $0 == " " ? "%20" : String($0) 
}.joined(separator: "") 
+0

ああ、ありがとう、私は自分自身を得た、結合部分に取得していない。ちょうど明確にするために、結合されます(separator: "")は常に文字列を生成しますか? – PruitIgoe

+1

はい、ここには[ドキュメント](https://developer.apple.com/documentation/swift/array/1688227-joined)があります。 –

+0

空白の文字列を区切り文字として渡すことは冗長です。 '.joined()'を使うだけです。 –

関連する問題