如何将[String:String?]转换为[NSObject:AnyObject]!?
现在我的项目使用Firebase作为Swift app的后端。 在我更新到Xcode 7和swift 2.0后,
我的.updateChildValues函数和下面的图像有错误。
我该如何解决这个问题? 谢谢!
答案 0 :(得分:2)
问题是字典中的值是String?
类型,因此它们可以包含nil
。当字典传递给Firebase中的Objective-C代码时,它会转换为NSDictionary
。 NSDictionary
中的值不能为nil
。
我猜测self.deckName.text
或self.deckDetails.text
正在返回String?
而不是String
作为Xcode 7中SDK更新的一部分。如果你&#39 ;绝对肯定他们永远不会返回nil
,您可以在self.deckName.text
和/或self.deckDetails.text
之后添加感叹号,以便从String?
展开到String
。
请注意,如果您做出错误的假设且某些内容确实返回nil
,则您的程序将崩溃。如果您不确定,可以执行self.deckName.text ?? ""
之类的操作,这意味着"如果它不是nil则返回deckName.text,否则返回空字符串"。