问题描述
|
NSData* myData = [NSData dataWithBytes:&pEvent length:sizeof(pEvent)];
wTimerId = 99;
[m_cAppIdMap setobject:myData forKey:[NSNumber numberWithUnsignedShort:wTimerId]];
wTimerId = 96;
[m_cAppIdMap setobject:myData forKey:[NSNumber numberWithUnsignedShort:wTimerId]];
wTimerId = 97;
[m_cAppIdMap setobject:myData forKey:[NSNumber numberWithUnsignedShort:wTimerId]];
wTimerId = 98;
[m_cAppIdMap setobject:myData forKey:[NSNumber numberWithUnsignedShort:wTimerId]];
wTimerId = 95;
[m_cAppIdMap setobject:myData forKey:[NSNumber numberWithUnsignedShort:wTimerId]];
我将按99、96、97、98、95顺序存储具有键值的数据。但它存储为
{
98 = <b0c71000 01000000>;
97 = <b0c71000 01000000>;
96 = <b0c71000 01000000>;
99 = <b0c71000 01000000>;
95 = <b0c71000 01000000>;
}
为什么这样呢?有什么办法可以按照首先存储的方式来安排字典。
解决方法
字典本质上是无序的。如果要订购,请使用数组。
如果要同时进行基于顺序和键的查找,请同时存储数组和字典。一个保留顺序,另一个保留基于键的查找。
只需保持同步即可。