以无序形式获取字典键和值

问题描述

|
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>;
}
为什么这样呢?有什么办法可以按照首先存储的方式来安排字典。     

解决方法

字典本质上是无序的。如果要订购,请使用数组。 如果要同时进行基于顺序和键的查找,请同时存储数组和字典。一个保留顺序,另一个保留基于键的查找。 只需保持同步即可。