gpt4 book ai didi

parse-platform - 快速连接 : Binary operator '+' cannot be applied to operands of type 'String' and 'AnyObject'

转载 作者:行者123 更新时间:2023-12-04 19:02:55 24 4
gpt4 key购买 nike

我在 Swift 中遇到错误,但在执行此操作时不明白:

if(currentUser["employer"] as! Bool == false) { print("employer is false: "+currentUser["employer"] as! Bool) }



但我可以做(它实际上并没有打印任何东西,也许是另一个问题):

if(currentUser["employer"] as! Bool == false) { print(currentUser["employer"]) }



结果出错:

Binary operator '+' cannot be applied to operands of type 'String' and 'AnyObject'



相似地:
                let currentUser = PFUser.currentUser()!
let isEmployer = currentUser["employer"]
print("isEmployer: \(isEmployer)")
print(currentUser["employer"])

但是这两个不起作用:
                print("employer: "+currentUser["employer"])
print("employer: \(currentUser["employer"])")

我也碰巧使用 Parse 来获取数据,但不确定这是否是正确的方法。

最佳答案

第一个示例中的错误消息可能具有误导性

if currentUser["employer"] as! Bool == false { 
print("employer is false: "+currentUser["employer"] as! Bool)
}


在这种情况下,错误消息应该是

binary operator '+' cannot be applied to operands of type 'String' and 'Bool'



因为 currentUser["employer"] as! Bool是非可选 Bool并且不能隐式转换为 String
那些例子

print("employer: "+currentUser["employer"])
print("employer: \(currentUser["employer"])")


不工作,因为
  • 在第一行,currentUser["employer"]没有任何类型转换是可选的 AnyObject (又名未指定)它不知道 +运算符(operator)。
  • 在第二行中,字符串文字 "employer"字符串内插表达式会导致语法错误(在 Xcode 7.1 beta 2 中已修复)。


  • 编辑:

    这种语法是通常的方式。
    let isEmployer = currentUser["employer"]
    print("isEmployer: \(isEmployer)")

    或者,你可以写
    print("employer is " + String(currentUser["employer"] as! Bool))

    关于parse-platform - 快速连接 : Binary operator '+' cannot be applied to operands of type 'String' and 'AnyObject' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33010922/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com