2014-10-10 83 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)”