有沒有辦法從一個NSMutableDictionary中一次檢索和移除一個對象?將摺疊方法如下:在一次去檢索並從一個NSMutableDictionary中移除一個對象
id myObject = [myMutableDict objectForKey:@"myKey"]
if(myObject)
{
[myMutableDict removeObjectForKey:@"myKey"];
...my code...
}
中:
id myObject = [myMutableDict retrieveAndRemoveObjectForKey:@"myKey"];
if (myObject)
{
...my code...
}
我沒有任何瓶頸或任何運行,我沒有什麼異形,但它很有道理的有一種從可變字典中移除對象並一次返回的方法,這樣字典不會最終找到兩次「myObject」(我知道我不應該對NSMutableDictionary如何在內部工作做任何假設)。
「有意義」?不,它不。在任何其他語言運行庫中的任何集合類中都沒有看到這樣的方法。但是,如果你想自己寫一個,那麼創建一個類別就是繼續。 – Droppy
「我還沒有在任何其他語言運行時在任何集合類中看到這樣的方法。」這不是一個有意義的理由。在其他語言中,您可以找到一個元素,獲取一個迭代器,然後在不變的時間內用迭代器移除該對象。在這裏,NSMutableDictionary可能需要在內部找到兩次「myObject」,每次方法調用一次,所以兩種方法都會很有意義。無論如何,如果沒有內置任何東西,那麼我想答案是否定的。 – Rajveer
至少在Python中有這樣的方法:https://docs.python.org/3/library/stdtypes.html#dict.pop –