2015-04-22 60 views
0

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

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设定值:

- (void)setValue:(id)value

+0

您链接到的方法签名将转换为Swift类型'AnyObject'。 该文档看起来非常糟糕,因为它没有评论它期望什么类型的值。我不知道Firebase究竟是什么或者做了什么,或者应该在这里设置什么样的价值。 – nhgrif

回答

1

你可以声明myInfo作为NSDictionary,但斯威夫特的方式来做到这一点是声明myInfo为:

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

[:]创建一个空的字典(0键/值对)作为初始值210。另外

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

,您可以创建和初始化myInfo这样的:您可以稍后再重新分配它

var myInfo = [String: AnyObject]() 

这具有相同的效果,而且它只是一个风格问题和品尝哪一个你使用。你会看到两种初始化的样式。

+0

是的工作,是否有[字符串:AnyObject]()和[:]之间的差异,如果是这样,我为什么会使用一个与其他。 – MonkeyBonkey