2017-05-16 73 views
0

只是好奇,在斯威夫特,是比較理想的初始化一個空的NSMutableDictionary變量,NSMutableDictionary = [:],後來它的價值重新分配給新的字典(例如從一個API來),Swift - 清空NSMutableDictionary或NSDictionary?可選

OR,是它更好地聲明一個可選的NSDictionary,NSDictionary?並將其分配給一個新的字典?

+0

最好在NS(可變)字典上使用Swift'Dictionary'。而選擇性完全取決於你是否希望能夠區分「無響應」和「空響應」。 – Hamish

回答

0

這取決於你的需求,你想它有時零嗎?有時候它是零嗎? 如果一個數組總是有價值的,即使它是一個空值,我個人喜歡立即初始化它,而不是隨處都打亂。

也許如果你有兩個數組,一個是普通數組,第二個是搜索結果。您可能想檢查搜索結果是否爲零,如果是,則顯示數組1,如果它沒有顯示它。

這意味着你只搜索「有時」,因此該數組只有時被使用 - 所以如果你沒有在大部分時間使用它,你可能會在不使用時釋放數據。

編輯:我一直在我的例子中使用數組,但同樣適用於這些情況下的字典。 編輯:在Swift最好避免'NS'類,有時你必須使用它們,當然。但斯威夫特的詞典完成這項工作。

例子:

var sometimesUselessDict: Dictionary<String, AnyObject>? 
var alwaysUsedDictionary = Dictionary<String, AnyObject>() 

乾杯

0

因此,與斯威夫特這在技術上是使用字典式的最佳實踐。像這樣的例子:

var dict: Dictionary<String, Int> 

如果你需要字典作爲一個整體能夠使用可選。

0

只有當您需要能夠區分一個根本不存在的字典和一個根本不存在的字典時,您才應該使它成爲可選的。例如,如果您從服務器接收數據,則可能需要區分返回無數據(空字典)的成功響應和失敗或無效響應(無)。

如果這種區別並不重要,我會一直使用非選擇性的,以避免不必要的解包。

相關問題