从文字语句声明类型

Declaring a type from a literal statement

在 swift 中实现一些 firebase 代码,我需要将局部变量提升为 class 属性,但我不知道要声明什么类型。

var myInfo:Any //what type should this be declared as?  [String: Any]? Dictionary or NSDictionary?

self.myInfo =  ["uid": "xyz", "neighborhoodId": "sesame street", "avatar":[],"location":[]]

我应该将 myInfo 的类型声明为什么?

这是我将要传递给 myInfo 以设置值的 Firebase 方法:

- (void)setValue:(id)value

您可以将 myInfo 声明为 NSDictionary,但 Swift 的方法是将 myInfo 声明为:

var myInfo:[String: AnyObject] = [:]

[:] 创建一个空字典(0 key/value 对)作为 myInfo 的初始值。然后你可以稍后重新分配它:

myInfo = ["uid": "xyz", "neighborhoodId": "sesame street", "avatar":[],"location":[]]

或者,您可以像这样创建和初始化 myInfo

var myInfo = [String: AnyObject]()

这个效果是一样的,用哪个只是风格和品味的问题。您将看到使用了两种初始化方式。