从 NSDictionary 数组中获取具有值的数组

Posted

技术标签:

【中文标题】从 NSDictionary 数组中获取具有值的数组【英文标题】:Getting Array with values from an array of NSDictionary 【发布时间】:2012-03-02 12:19:37 【问题描述】:

我有一个包含 4 个字典的数组,其中键为 @"preference",如下所示

 (
        
          preference = Nose;
        ,

        
          preference = "Heart rate";
        ,

        
          preference = Glucose;
        ,

        
          preference = Food;
        
)

现在我想为这些字典值检索一个数组,例如“

 (
    Nose, Heart rate,  Glucose,  Food
 )

我是怎么得到它的。在此先感谢

【问题讨论】:

【参考方案1】:

单行:

NSArray *resultingArray = [arrayOfDictionaries valueForKeyPath:@"preference"];

【讨论】:

在这种情况下,使用-valueForKey: 可能会获得更好的性能【参考方案2】:

试试看:

NSArray *result = [dictionaryObject valueForKeyPath:@"preference"];

它会解决你的问题

【讨论】:

【参考方案3】:

做这样的事情:

NSMutableArray *collectedValues = [NSMutableArray arrayWithCapacity:array.count];

for (NSDictionary *dict in array) 
    NSString *value = [dict objectForKey:@"preference"];
    if (value) 
        [collectedValues addObject:value];
    

【讨论】:

【参考方案4】:

试试这个代码: myArray 是你的第一个数组 mySecondArray 是你最后拥有的数组

 NSMutableArray *mySecondArray = [[NSMutableArray alloc] init];

        for (int i = 0; i < [myArray count] ; i++)
        
            NSDictionary *tempDict = [myArray objectForIndex:i];
            [mySecondArray addObject:[tempDict objectForKey@"preference"]];


        

【讨论】:

以上是关于从 NSDictionary 数组中获取具有值的数组的主要内容,如果未能解决你的问题,请参考以下文章

从 NSDictionary 获取包含 NSNumber 布尔值的键列表,其中值为 @YES

使用具有多个值的键创建 NSDictionary

两个 NSArray 组合成一个具有交替值的 NSDictionary

具有深度嵌套层次结构的不可变 NSDictionary:更改键的值?

从JSON数组objective-c获取值的问题

具有 nil 值的 NSDictionary 快速 KVC