我正在为我的iOS应用创建一个登录,并收到错误NSInternalIncosistencyException
。
最初
if (responseString=="1") {
由于某种原因永远不会实现所以我改为下面的代码返回true但导致错误?
if (responseString?.intValue==1) {
这是怎么回事?
修改
我完全被这个问题困惑了。我已将PHP文件更改为echo'good'而不是'1',以尝试取消将String与Int进行比较的问题。
这是我目前的代码
let responseString = NSString(data: data!, encoding:
String.Encoding.utf8.rawValue)
let goodVal: NSString = "good"
print ("responseString =\(responseString!))")
print (goodVal)
print(responseString==goodVal)
if responseString == goodVal{
print("IN LOGIN")
所以这就是我的代码看起来是什么,它产生的输出低于Display Output
那么为什么在if语句中真的不成真呢?!
答案 0 :(得分:0)
如果你想知道两个字符串是否相等,你可以使用你的第一个代码:
if (responseString=="1") { ... }
如果这种情况永远不会实现,那是因为responseString
不是" 1"或者它可能是一个你必须解开的可选项。
答案 1 :(得分:0)
您应该在可选链接下尝试this示例作为强制解包的替代部分:
来自链接的部分:
if let roomCount = john.residence?.numberOfRooms {
print("John's residence has \(roomCount) room(s).")
} else {
print("Unable to retrieve the number of rooms.")
}
// Prints "Unable to retrieve the number of rooms."
使用IF..Let
确定是否填充'responseString'变量并相应地使用它。
修改强>
根据您的评论,您可以尝试:
var responseString: String? = "1"
// example 1
if let responseCode = responseString {
print("responseCode \(responseCode)")
if(Int(responseCode) == 1) {
print("responseCode is 1")
}
} else {
print("No response code")
}
// example 2
if responseString != nil {
print("responseCode \(responseString!)")
}
else {
print("No response code")
}