2015-08-28 86 views
-1

我有一个包含对象和键的字典。我想那种字典使用键IOS按给定排列顺序排序NSDictionary

dict = [name : abc, city: xyz, date :xys, location: mnq ...] 

例如我想通过像

array = [name, location, city, date] 

我想有点像

dict = [name : abc, location: mnq, city: xyz,date: xys ...] 

的dicionary应该排序dicationay,如根据我传递的数组值 不像字母表或allkeys或allValue的顺序

+2

字典不要有下订单后排序!它们是无序的键值对,它们没有特定的顺序,你不应该关心它们的顺序。 – luk2302

回答

0
NSArray *newkey = [[NSArray alloc] initWithObjects:@"name",@"location", @"city", @"date", nil]; 
    int index = 0; 


    for (id key in dictionary) { 
     NSLog(@"key: %@, value: %@", [newkey objectAtIndex:index], [dictionary objectForKey:[newkey objectAtIndex:index]]); 


     index++; 
    } 
+0

非常感谢! MrWaqasAhmed – Das

+0

我发现快速 – Das

+0

anotherwayway欢迎您 – MrWaqasAhmed

0

你无法排序字典...使二维数组与键 - 值对,并将它们与的.sort()函数

0
var dict : NSMutableDictionary = NSMutableDictionary() 

    dict.setObject("damu", forKey: "name") 
    dict.setObject("bng", forKey: "city") 
    dict.setObject("sakha", forKey: "office") 
    dict.setObject("apple", forKey: "technology") 

// Searching array 
    keysArray = ["name","city","office","tech"] 

// returning Touple 
    var dictTouples = returnTouppleWithDictionary(dict, sortWithArray: keysArray) 
    print("\n\n Soreted as keys: \(dictTouples.allKeys) Values \(dictTouples.allValues) ") 

// Touple 

    func returnTouppleWithDictionary(dict : NSDictionary, sortWithArray: NSArray) ->(allKeys:NSArray, allValues:    NSArray){ 
    var arrayKeys : NSMutableArray = NSMutableArray() 
    var arrayValues : NSMutableArray = NSMutableArray() 
    for i in 0..<keysArray.count{ 
     var key : NSString = keysArray[i] as! String 
     var name: NSString? = dict.objectForKey(key) as! String; 
     arrayKeys.addObject(key) 
     arrayValues.addObject(name!) 
    } 
    return(arrayKeys,arrayValues) 

}

+0

它完成!谢谢大家 – Das