Objective c 如何将特定数组对象从一个数组复制到另一个数组?

Objective c 如何将特定数组对象从一个数组复制到另一个数组?,objective-c,arrays,Objective C,Arrays,我有一个NSMutableArray,有两个字段:name和number。数组的名称为“紧急”,它包含: urgency: "ADMIT", urgencyId: 5 我的问题是如何在临时数组中只添加紧迫性?我不想添加urgencyID。它看起来像是一个NSDictionary,或者您的数组包含dictionary的对象,其中有两个键,分别是urgencyID和urgencyID 您可以通过[…valueForKey:@“紧迫性”] 编辑: 我认为这(我试图复制你所说的)可能会对你有所帮助:

我有一个NSMutableArray,有两个字段:name和number。数组的名称为“紧急”,它包含:

urgency: "ADMIT",
urgencyId: 5

我的问题是如何在临时数组中只添加紧迫性?我不想添加urgencyID。

它看起来像是一个
NSDictionary
,或者您的数组包含dictionary的对象,其中有两个键,分别是
urgencyID
urgencyID

您可以通过
[…valueForKey:@“紧迫性”]

编辑:

我认为这(我试图复制你所说的)可能会对你有所帮助:

NSString *keyUrgency = @"urgency";
NSString *keyUrgencyId = @"urgencyId";

NSDictionary *u1 = @{keyUrgency: @"u1_urgency",
                     keyUrgencyId: @"u1 id"};

NSDictionary *u2 = @{keyUrgency: @"u2_urgency",
                     keyUrgencyId: @"u2 id"};

NSDictionary *u3 = @{keyUrgency: @"u3_urgency",
                     keyUrgencyId: @"u3 id"};

NSArray *array = @[u1, u2, u3];

NSLog(@"array : %@",array);

//you want only urgencies in array
NSArray *urgencies = [array valueForKey:keyUrgency];
NSLog(@"urgencies : %@",urgencies);

可以在一个数组中保存这样的所有值

NSArray *allUrgency = [dict valueForKeyPath:@"urgency"];

您可以执行以下操作,即:


是nsmutablearray还是nsmutabledictionary?您还没有很清楚地解释您的问题或数据结构。发布到目前为止您所拥有的代码,它可能会为您说明Hi Firdos的可能重复。如果数组包含NSDictionary,则为[dict valueForKeyPath:@“紧迫性”];这是NSString而不是NSArray。
valueForKeyPath:
返回
id
而不是
NSString
是的,我同意,但对于上面的紧急情况:“承认”是字符串。您好,欢迎回复,但是我怎么才能得到所有的紧急情况和什么是“dict”?关键路径之间必须有一个点,像
@“关键。紧迫性
但我如何才能获得所有的“紧迫性”只有20个紧急情况?这将返回数组。您好,Anoop可以准确地将代码写入我做过的相同的代码格式,但没有得到成功,正如bhargavi的回答所说。这是正确的Anoop,但我的所有值都已准备好存储到该数组中的一个可变数组中。这两个东西都存在,因此我只需要“紧急情况”另一个字符串数组中的应用程序崩溃:(由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'-[Emergency CountByEnumerating WithState:objects:count::]:无法识别的选择器发送到实例
NSMutableArray *tmp = [[NSMutableArray alloc] init];
 for(NSArray *dim1Array in yourMultidimensionalArray)
 {
    for(id obj in dim1Array)
    {
       if([obj valueForKey:@"urgency"])
       {
          [tmp addObject:dim1Array];
          break; // I assume you only want to add it once
       }
    }
 }