2013-04-14 108 views
2

我需要將整數值映射到某種可變數組中的對象。什麼是最好的方式去做這件事。我看到的唯一選擇是使用的ObjectiveC++ ...用intC鍵映射在objectiveC中

std::map<int, id> theMap; // if i can use id? 

或把整數變成NSStringNSNumber作爲一個NSMutableDictionary鍵來使用。

我使用這個我的網絡類,客戶端將發送一些數據(密鑰將在有效載荷中)。然後讀取密鑰將從數據包中提取,然後基於接收到的內容將地圖中的對象拉出以繼續該程序。 (我很擔心客戶端接收到的有效載荷無序或丟失有效載荷。)

哪一個會是最好的/最快的方法?

回答

5

最好的選擇(如果你不想亂用C++)使用NSMutableDictionaryNSNumber作爲關鍵字。新的字面語法更容易:

NSMutableDictionary *map = [NSMutableDictionary dictionary]; 
map[@1] = @"A value"; 
map[@578] = @"Another string"; 
int key = 310; // doesn't matter where this comes from 
map[@(key)] = @"From a variable!"; 
+0

我更新了我的答案以添加此案例。 –

+0

謝謝你的理想!仍在等待SO允許接受。 – Andrew

+0

即時猜測,NSNumber * one_ns = @(one_int);與編譯後的整數one_int的alloc和init相同? - 當然看起來不錯,壽! :) – Andrew