2016-11-18 120 views
1

在整個SO和在線上都有大量的細節。不幸的是,我無法用它來處理我的字符串。我有這個字符串如何用格式創建一個字符串?不在字符串上工作

https://maps.googleapis.com/maps/api/directions/json?origin=%@,%@&destination=%@,%@&sensor=false&units=metric&mode=driving 

和所有我想要做的是通過做

let url = String(format: Constants.GoogleDirectionsUrl, road.FromCoordinates.Latitude, road.FromCoordinates.Longitude, road.ToCoordinates.Latitude, road.ToCoordinates.Longitude) 

字符串插入必要的值到字符串雖然總是打印出作爲

https://maps.googleapis.com/maps/api/directions/json?origin=(null),(null)&destination=(null),(null)&sensor=false&units=metric&mode=driving 

雖然所有的座標都是有效的。當我做字符串插補我得到正確的價值展現出來

print("coord -- \(road.FromCoordinates.Latitude)") 

座標 - 29.613929

我已經試過%L,%f和%@串都具有相同的結果英寸任何人看到我在這裏做的不正確?

更新

對於其他人,這裏是我落得這樣做克服了以上。我遵循下面的答案,創建了一個類func,我在應用程序的全局類中有一個。這使我可以從任何地方調用它。下面是函數

class func createUrlDrivingDiretions (sLat: Double, sLon: Double, eLat: Double, eLon: Double) -> String { 
    return "https://maps.googleapis.com/maps/api/directions/json?origin=\(sLat),\(sLon)&destination=\(eLat),\(eLon)&sensor=false&units=metric&mode=driving" 
} 
+1

用這個問題中涉及的所有變量的聲明和設置來更新你的問題。 – rmaddy

+0

編輯您的問題並正確提供所有信息 –

回答

3

你爲什麼不使用以下語法(使用SWIFT ...不是傳統的OBJ-C編碼):

let var1 = "xxx" 
let var2 = "yyy" 
let var3 = "zzz" 
let var4 = "www" 
let var5 = "kkk" 

let s = "https://maps.googleapis.com/maps/api/directions/json?origin=\(var1),\(var2)&destination=\(var4),\(var5)&sensor=false&units=metric&mode=driving" 

確保VAR1 ...... VAR5不可選的,否則你必須解開他們,否則你會得到這樣的輸出字符串:可選(XXX) ...而不是XXX

如果您需要特殊的格式使用NumberFormatter類(見本:Formatters

+0

不幸的是,這樣的事情是行不通的。考慮到它會在很多地方使用,我沒有考慮在課堂中包含這個URL。這將需要重複我通常避免的代碼。 –

+0

因此,在這之後我創建了一個全局類中的函數,以便我可以從任何地方調用它。謝謝你的提示。 –

+0

不客氣! – Sergiob

相關問題