for(NSString * ID in someNSMutableDictionary)
{
//do something
}
現在,ID會按照它們添加到某個NSMutableDictionary的順序顯示出來嗎?以什麼順序運行(在someNSDictionary中的NSString * ID)?
for(NSString * ID in someNSMutableDictionary)
{
//do something
}
現在,ID會按照它們添加到某個NSMutableDictionary的順序顯示出來嗎?以什麼順序運行(在someNSDictionary中的NSString * ID)?
不,沒有定義someNSMutableDictionary
中的密鑰的順序。字典是關於鍵值對,而不是關於順序。
如果您需要按照某個順序遍歷字典 - 對這些鍵進行排序,然後對有序鍵數組進行迭代並逐個獲取每個值。
否這些ID不會以它們添加的順序或以任何排序順序顯示,除非您強制對NSDictionary對象的鍵進行排序。
密鑰的隨機排序是一種技術,可以最大限度地減少按鍵訪問值所花費的時間,並且通常用於大多數字典或散列表實現中。
如果你想的鑰匙,在有序,你可以使用下面的代碼(假設鍵簡單的ASCII排序):
for (NSString* key in [[someDictionary allKeys] sortedArrayUsingSelector:@selector(compare:)])
{
// do stuff
}