我看到一个奇怪的问题。我正在尝试比较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库参考-String
:http://goo.gl/591Ebo
两者是不同的。因此,您将无法对某一项应用某些操作。
为了比较两个String
,您可以执行outputString == "Error"
,因为存在比较运算符。
但是,为了比较两个NSString
,您需要使用isEqualToString:
方法。在您的情况下,它应该像这样工作:outputString.isEqualToString("Error")
。
编辑1:
此处的代码示例:http://swiftstub.com/445434073/
编辑2:
您还可以使用String
运算符将NSString
与==
进行比较。