2016-08-30 24 views
0

文字列のバックスラッシュに問題があります。文字列スウィフトから(バックスラッシュ)を削除する方法

私はこのコードの文字列を作成する場合:

let url = webProtocol + siteHost + "/tables/coupon?$expand=source&$filter=Source/Name eq '" + category + "'&" + siteApi 

を、私はこのURLが

https://swoup.azurewebsites.net/tables/coupon?$expand=source&$filter=Source/Name eq 'Recommended'&ZUMO-API-VERSION=2.0.0 

期待しかし、私は、私は

を使用してそれらを削除しようとしました。この

https://swoup.azurewebsites.net/tables/coupon?$expand=source&$filter=Source/Name eq \'Recommended\'&?ZUMO-API-VERSION=2.0.0 

を取得

stringByReplacingOccurrencesOfString("\\", withString: "") 

しかし、それは役に立ちません。また、'の前にバックスラッシュを追加しようとしましたが、それは役に立ちません。

+6

? – Aaron

+0

URLをエンコードしましたか? –

+2

完全な質問を提供してください、 'webProtocol'、' siteHost'、 'category'と'siteApi'は未定義です。完成に重点を置いた[mcve]を提供してください。 – zaph

答えて

0

NSURLComponentsとNSURLQueryItemを使用すると、文字列連結ではなくURLを構築できます。

let components = NSURLComponents() 
components.scheme = "https" 
components.host = "swoup.azurewebsites.net" 
components.path = "/tables/coupon" 
let category = "Recommended" 
let expand = NSURLQueryItem(name: "expand", value: "source") 
let filter = NSURLQueryItem(name: "filter", value: "Source/Name eq '\(category)'") 
let api = NSURLQueryItem(name:"ZUMO-API-VERSION", value:"2.0.0") 
components.queryItems = [expand, filter, api] 

components.URLからあなたにこのURLを与えます:

あなたが期待するURLにスペースを持っていないのはなぜ

https://swoup.azurewebsites.net/tables/coupon?expand=source&filter=Source/Name%20eq%20\'Recommended\'&ZUMO-API-VERSION=2.0.0

1

あなたの質問にはっきりしませんが、バックスラッシュは実際には文字列にはなく、XCodeで印刷されていると思います。たとえば、遊び場に次のように入力します。

let siteApi="test=123" 
let category="Category1" 
let webProtocol="https://" 
let siteHost="www.testme.com" 
let url = webProtocol + siteHost + "/tables/coupon?$expand=source&$filter=Source/Name eq '" + category + "'&" + siteApi 
print(url) 

そして、あなたは出力がバックスラッシュが含まれていませんが表示されます。

https://www.testme.com/tables/coupon?$expand=source&$filter=Source/Name eq 'Category1'&test=123 
+0

あなたはバックスラッシュを使用していません。コードカテゴリは '\ 'で埋められ、' \' 'は文字列内の特殊コードで、単一のアポストロフィを意味します。問題は、カテゴリがいっぱいであれば、 '\\\ '' – Knight0fDragon

+0

を実行する必要があります。それは非常に混乱します。これは不完全な例であり、引用符を混ぜると読みにくくなります。うまくいけば、彼は完全なコードを投稿し、私たちは問題がどこにあるかをよりよく知ることができます。 –

+0

確かに混乱しています – Knight0fDragon

0

エラーは表示されていない変数にあります。この例では

完全なコード例(?):

let webProtocol = "https://" 
let siteHost = "swoup.azurewebsites.net" 
let category = "Recommended" 
let siteApi = "ZUMO-API-VERSION=2.0.0" 
let url = webProtocol + siteHost + "/tables/coupon?$expand=source&$filter=Source/Name eq '" + category + "'&" + siteApi 
print (url) 

出力
https://swoup.azurewebsites.net/tables/coupon?$expand=source&$filter=Source/Name eq 'Recommended'&ZUMO-API-VERSION=2.0.0

\はありません。

関連する問題