无法将返回值与字符串进行比较

时间:2018-06-13 14:18:11

标签: php swift

我正在尝试从php返回一个值(字符串)到IOS应用程序:

echo "1";

这是快速代码:

let returnedData = NSString(data: unwrappedData, encoding: String.Encoding.utf8.rawValue) as! String
print(returnedData)
if returnedData == "1" {
     ... something
}

打印功能显示正确的值(即1)。 但检查失败了。

1 个答案:

答案 0 :(得分:0)

  

String(...)给我可选(" 1 \ n \ n")

这表示输出后跟两个换行符,如下所示 例如:

let data = Data(bytes: [0x31, 0x0a, 0x0a])
if let string = String(data: data, encoding: .utf8) {
    print(string) // 1
    print(string.debugDescription) // "1\n\n"
    print(string == "1") // false
}

debugDescription是检测“不可见”字符串的非常有用的方法 字符。

解决方案是(比较Does swift have a trim method on String?):

let trimmed = string.trimmingCharacters(in: .whitespacesAndNewlines)
print(trimmed == "1") // true