比较2个字符串在Swift中失败

时间:2015-03-17 11:36:13

标签: ios swift

我看到一个奇怪的问题。我想在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")
    }
}

2 个答案:

答案 0 :(得分:1)

  

NSString课程参考:http://goo.gl/rPwMUx

     

Swift Library参考 - Stringhttp://goo.gl/591Ebo

两者不同。因此,您将无法在其中一个上应用某些操作。

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

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

修改1:

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

编辑2:

您还可以将StringNSString==运算符进行比较。

答案 1 :(得分:0)

我遇到了类似的问题,原因是编码错误。 我使用UTF8编码,但我比较的字符串是用UTF16编码的

String(data: model, encoding: .utf16) == String(data: data, encoding: .utf18)

是假的