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

Ios 如何将[String:String?]转换为[NSObject:AnyObject]!在Firebase Api的Swift 2.0中?,ios,xcode,swift,Ios,Xcode,Swift,如何将[String:String?]转换为[NSObject:AnyObject] 现在,我的项目将用作Swift应用程序的后端。 在我更新到Xcode 7和swift 2.0之后 我在.updateChildValues函数中出错,如下图所示。 我怎样才能解决这个问题? 谢谢 问题在于字典中的值属于String?类型,因此它们可能包含nil。当字典在Firebase中传递给Objective-C代码时,它将转换为NSDictionary。NSDictionary中的值不能是nil 我猜se

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

现在,我的项目将用作Swift应用程序的后端。 在我更新到Xcode 7和swift 2.0之后

我在.updateChildValues函数中出错,如下图所示。

我怎样才能解决这个问题?
谢谢

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

我猜
self.deckName.text
self.deckdeckdetails.text
在Xcode 7中作为SDK更新的一部分返回了
String?
而不是
String
。如果您绝对确定它们永远不会返回
nil
,则可以在
self.deckName.text
和/或
self.deckDetails.text
后添加感叹号,以从
String?
展开到
String

请注意,如果您做了一个错误的假设,并且确实返回了
nil
,那么您的程序将崩溃。如果您不确定,可以执行类似于
self.deckName.text??“
,意思是“如果不是nil,则返回deckName.text,否则返回空字符串”