代码之家  ›  专栏  ›  技术社区  ›  Fab

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

  •  1
  • Fab  · 技术社区  · 8 年前

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

    echo "1";
    

    这是银行代码:

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

    打印功能显示正确的值(即1)。 但是支票没有兑现。

    1 回复  |  直到 8 年前
        1
  •  0
  •   Martin R    8 年前

    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 是检测__invisible_字符串的非常有用的方法 字符。

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

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