我看到一个奇怪的问题。我正在尝试比较Swift中的2个字符串。一个字符串来自我从服务器获得的响应。在下面的代码中,它在outputString NSLog中正确打印为“错误”。但是,当我在下面的下一行进行比较时,它失败了,并且没有在此处引发错误警报。我不知道我在做什么错。

    NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue()) {(response, data, error) in
    var outputString:NSString = NSString(data:data, encoding:NSUTF8StringEncoding)!
    NSLog("outputString: %@", outputString)
    if (outputString=="Error") {
      NSLog("Error")
    }
}

最佳答案

NSString类参考:http://goo.gl/rPwMUx
  
  Swift库参考-Stringhttp://goo.gl/591Ebo


两者是不同的。因此,您将无法对某一项应用某些操作。

为了比较两个String,您可以执行outputString == "Error",因为存在比较运算符。

但是,为了比较两个NSString,您需要使用isEqualToString:方法。在您的情况下,它应该像这样工作:outputString.isEqualToString("Error")

编辑1:

此处的代码示例:http://swiftstub.com/445434073/

编辑2:

您还可以使用String运算符将NSString==进行比较。

10-08 18:20