我想使用Swift在Parse中的对象Participants
的末尾添加当前用户的用户名,但是我在标题中出现了错误。Swift二元运算符'+ ='不能应用于'AnyObject!'类型的操作数。和'串!'
obj["Participants"] += kCurrentUser.username
我不知道如何解决它。我已经试过.append
和其他一些方法。你们有什么想法吗?
我想使用Swift在Parse中的对象Participants
的末尾添加当前用户的用户名,但是我在标题中出现了错误。Swift二元运算符'+ ='不能应用于'AnyObject!'类型的操作数。和'串!'
obj["Participants"] += kCurrentUser.username
我不知道如何解决它。我已经试过.append
和其他一些方法。你们有什么想法吗?
Swift语言不会执行隐式转换,如果两个不同类型的操作数必须将其中的任何一个转换为另一个操作数类型以应用二元运算符。
所以在你的情况下,将AnyObject类型的操作数转换为字符串。
它看起来像obj是一个NSDictionary。 NSDictionaries包含每个键的匿名值。所以当你查找一个键时,这个值是AnyObject类型的。您不能将字符串追加到AnyObject。
你将不得不使用更详细的声明:
obj["Participants"] = obj["Participants"] as! String + kCurrentUser.username
(如果obj是一个可变字典只会工作,如果它是一成不变的,它会崩溃。)
只有几个周成迅速被这个打击,但如前所述“雨燕语言不做隐式类型转换,..”
对我来说,我有这样的代码:
if objects == nil {
objects = NSMutableArray()
}
转换为:
if objects.count == 0 {
objects = NSMutableArray()
}
它也将崩溃,如果'obj'具有该键的值'“参与者”'或者如果它有一个值,该值不能被解释为一个字符串' ',所以或许我们不要滥用'!'运算符? – nhgrif
我怀疑'obj [“Participants”]'可能是一个数组(他提到他试过'.append'加'Participants'是一个集合的好名字),并且他试图在其中添加一个字符串反对重新分配)... – Alladinian
在这个声明中,是不是第一个'!'多余的?因为你已经使用'!'将它解开为'String'? – milo526