2015-04-22 89 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