1. Welcome to the new MacRumors forums. See our announcement and read our FAQ

Nsdictionary in sorted list

Discussion in 'iPhone/iPad Programming' started by deepamalini, Dec 15, 2008.

  1. macrumors newbie

    #1
    Hi,

    I need to have a hashmap in my application. so i used nsdictionary. But i insert the key-value pair in nsdictionary in one order, What i get from nsdictionary is in different order. Is there a way to accompany to put key-value pair in some datatype and retreive from it in same order?
     
  2. macrumors regular

    xsmasher

    #2
    It's unusual to need keys in order. Usually order = array, key/value = dictionary. Many ways to handle it, though.

    (1) Keep an array of keys along with the dictionary. Then loop through the array and use the keys to get the values. (You'll have to add your own checks to keep the same key from appearing in the array twice.)

    (2)You could keep an array of custom objects, one custom object for each pair (give the object .key and .value properites) . That's a very object-oriented way, but you lose the ability to easily find the value for a key (you have to loop through the array.)

    (3)You could keep two arrays of strings, one for keys and one for values.
    to find a value for a key, you just use
    Code:
    keyIndex = [myKeys indexOfObject: keyIWant];
    keyValue = [myValues objectAtIndex: keyIndex];
    
    Anyone know a simpler solution? I'm assuming keyEnumerator doesn't preserver order.
     
  3. macrumors newbie

    #3
    Hi,

    I cant use two data structure to accompany this. Because I am sending this key-value pair from the server, since i am handling with huge data, I cant send both arrays and dictionary from the server, it will slow done the process. Is there any other way?
     

Share This Page