iOS - 按顺序将NSDictinary键值添加到NSArray中

时间:2015-06-10 06:59:15

标签: ios objective-c nsarray nsdictionary nsmutabledictionary

我有NSDictionaryNSArray

self.dataDic = [[[NSDictionary alloc] init] autorelease];
self.dataDicKey = [[[NSArray alloc] init] autorelease];

这些是我NSDictionary的关键和价值:

    self.dataDic =
    @{@"Ring Cloud" :@[@"Contact Cloud", @"Image Cloud", @"Data Cloud"],
      @"Ring Tools" :@[@"Sticker Market", @"Live Poll", @"Mail"],
      @"Ring Apps"  :@[@"Studio", @"Player"]};

现在我想要的是将self.dataDic的所有值依次插入self.dataDicKey。这意味着它看起来像这样:

self.dataDicKey = [[[NSArray alloc] initWithObjects:@"Ring Cloud", @"Ring Tools", @"Ring Apps",nil] autorelease];

我试过这个:

self.imageDicKey = [[[self.imageDic allKeys] reverseObjectEnumerator] allObjects];

但它实际上没有对值进行排序。如果有人有任何建议,请与我分享。

提前多多感谢。

2 个答案:

答案 0 :(得分:3)

如果您想在keysobjects NSArray,请尝试使用此方法

self.DataDicKey = [[NSArray alloc]initWithArray:[self.imageDic allKeys]];

要记住,NSDictionary allKeys方法只返回密钥,而不管它们的保存顺序。作为KVP

这会将您的NSDictionary密钥复制到NSArray

答案 1 :(得分:1)

NSDictionary键未排序 - 也许您可以在将数据输入字典之前将键保存在数组中