如何将[String:String?]转换为[NSObject:AnyObject]!在Swift 2.0 for Firebase Api中?

时间:2015-09-21 05:03:15

标签: ios xcode swift

如何将[String:String?]转换为[NSObject:AnyObject]!?

现在我的项目使用Firebase作为Swift app的后端。 在我更新到Xcode 7和swift 2.0后,

我的.updateChildValues函数和下面的图像有错误。 enter image description here

我该如何解决这个问题? 谢谢!

1 个答案:

答案 0 :(得分:2)

问题是字典中的值是String?类型,因此它们可以包含nil。当字典传递给Firebase中的Objective-C代码时,它会转换为NSDictionaryNSDictionary中的值不能为nil

我猜测self.deckName.textself.deckDetails.text正在返回String?而不是String作为Xcode 7中SDK更新的一部分。如果你&#39 ;绝对肯定他们永远不会返回nil,您可以在self.deckName.text和/或self.deckDetails.text之后添加感叹号,以便从String?展开到String

请注意,如果您做出错误的假设且某些内容确实返回nil,则您的程序将崩溃。如果您不确定,可以执行self.deckName.text ?? ""之类的操作,这意味着"如果它不是nil则返回deckName.text,否则返回空字符串"。