2014-10-10 82 views
3

我在嘗試使用字符串連接來創建網絡調用的URL。但是,當試圖連接字符串時,我得到間歇性結果。Swift字符串連接問題

附加圖片顯示它連接到只有"h"。下面添加了相關的代碼。

我錯過了什麼嗎?

謝謝。

enter image description here

/* Constants */ 
private let baseURL = "https://someurl.com/" 
private let URLSuffix = "anotherString" 
private let typeItem = "item/" 

class HITNetworkCoordinator: NSObject { 

    class var sharedInstance : HITNetworkCoordinator { 
     return _HITNetworkCoordinatorInstance 
    } 

    func downloadItem (itemID: Int) { 
     let taskURLString = baseURL + typeItem + String(itemID) + URLSuffix 
     let taskURL = NSURL.URLWithString(taskURLString) 
     let task = NSURLSession.sharedSession().dataTaskWithURL(taskURL, completionHandler: { (data, response, error) -> Void in 
      var responseDict : NSDictionary? = NSJSONSerialization.JSONObjectWithData(data, options: nil, error: nil) as? NSDictionary 
      println(responseDict) 
     }) 
     task.resume() 
    } 
+2

我並不總是信任調試器變量視圖。最好將'println(taskURLString)'添加到代碼中並顯示輸出。 – 2014-10-10 05:21:04

+3

是的,調試器仍然有一些已知的錯誤與變量/常量。 – zisoft 2014-10-10 05:26:13

+0

我會嘗試。但是在這些情況下網絡調用總是失敗,但是當調試器顯示正確的輸出時總是成功。 – isal 2014-10-10 05:42:21

回答

0

試試這個 - 讓taskURLString = 「(基本URL)(typeItem)+字符串(ITEMID)+(URLSuffix)」,看看會發生什麼

0

字符串連接似乎得到flakier爲您可以增加表達式中concat運算符(+)的數量。我放棄了一段時間,並開始使用評估者。例如。 let taskURLString =「\(baseURL)\(typeItem)\(itemID)\(URLSuffix)」