在swift中连接:二进制运算符'+'不能应用于'String'和'AnyObject'类型的操作数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在swift中连接:二进制运算符'+'不能应用于'String'和'AnyObject'类型的操作数相关的知识,希望对你有一定的参考价值。
我在Swift中遇到错误,当我这样做时不明白它:
if(currentUser [“雇主”]为!Bool == false){print(“雇主是假的:”+ currentUser [“雇主”]为!Bool)}
但我能做到(它实际上并没有打印任何东西,可能是另一个问题):
if(currentUser [“雇主”]为!Bool == false){print(currentUser [“雇主”])}
结果有误:
二进制运算符'+'不能应用于'String'和'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) }
在这种情况下,错误消息应该是
二元运算符'+'不能应用于'String'和'Bool'类型的操作数
因为currentUser["employer"] as! Bool
是一个非可选的Bool
,不能隐含地投射到String
那些例子
print("employer: "+currentUser["employer"]) print("employer: (currentUser["employer"])")
不工作,因为
- 在第一行中,没有任何类型转换的
currentUser["employer"]
是可选的AnyObject
(又名未指定),它不知道+
运算符。 - 在第二行中,String插值表达式中的字符串文字
"employer"
导致语法错误(在Xcode 7.1 beta 2中修复)。
编辑:
这种语法是常用的方法。
let isEmployer = currentUser["employer"]
print("isEmployer: (isEmployer)")
或者,你也可以写
print("employer is " + String(currentUser["employer"] as! Bool))
以上是关于在swift中连接:二进制运算符'+'不能应用于'String'和'AnyObject'类型的操作数的主要内容,如果未能解决你的问题,请参考以下文章
代码转换 swift 2 --> 3 导致索引路径处的二进制运算符错误