如何在 NSMutableArray 中选择特定索引并存储在 nsarray [关闭]

Posted

技术标签:

【中文标题】如何在 NSMutableArray 中选择特定索引并存储在 nsarray [关闭]【英文标题】:How to select specific index in NSMutableArray and stored in nsarray [closed] 【发布时间】:2018-04-16 07:18:35 【问题描述】:

我开发了一个简单的应用程序,它使用 NSDictionary 将学生的姓名和 id 存储到 NSMutableArray 中,我只想在存储到 NSMutableArray 之后获取名称,而不是存储到 NSArray 中

这是我的简单代码

NSDictionary *student1 = [NSDictionary dictionaryWithObjectsAndKeys:
                          @"key1", @"id",
                          @"Joe", @"name",
                          nil];

NSMutableArray *array = [NSMutableArray arrayWithObjects:student1, nil];

请帮我解决这个问题。

【问题讨论】:

有什么问题? 我想在 NSMutableArray 中选择特定索引(仅限名称)并存储在 nsarray 中 如果您提供一个您正在寻找的示例,可能会有所帮助。按名称搜索时,您想知道名称存储在字典数组中的索引吗? 我正在寻找获取特定索引的值 【参考方案1】:

试试这个:

NSDictionary *student1 = [NSDictionary dictionaryWithObjectsAndKeys:
                          @"key1", @"id",
                          @"Joe", @"name",
                          nil];

NSMutableArray *array = [NSMutableArray arrayWithObjects:student1, nil];

NSMutableArray *mArr = [[NSMutableArray alloc]init];
for (NSDictionary *student in array) 
    [mArr addObject:[student objectForKey:@"name"]];

NSArray *arr = mArr;
NSLog(@"%@",arr);    //OUTPUT: (Joe)

【讨论】:

我试过了,但它显示以下内容: *** 由于未捕获的异常 'NSInvalidArgumentException' 导致应用程序终止,原因:'*** -[__NSArrayM insertObject:atIndex:]: object cannot be nil' 请显示您的代码,并告诉我它在哪一行崩溃...错误消息说您正在尝试插入一个 nil 对象【参考方案2】:

所以,如果您要在特定索引处查找名称(Objective-c)

NSDictionary *student = array[SPECIFIC_INDEX];

NSString *name = student[@"name"];

【讨论】:

【参考方案3】:

关于您的问题,假设您有一组学生词典(id 和 name)并尝试根据 name 过滤数组。

for dic in array as! [NSDictionary] 
   if dic.objectForKey("name") as! String == "searchyournamehere"
   
        //name matched perform your operation here
   

缺点:由于多个学生可能具有相同的姓名,因此最好根据 id 过滤数组(假设它是唯一的),但是您正在搜索具有相同姓名的多个学生,上面的代码将有所帮助。

【讨论】:

感谢您提供此代码 sn-p,它可能会提供一些有限的即时帮助。 proper explanation 将通过展示为什么这是解决问题的好方法,并使其对有其他类似问题的未来读者更有用,从而大大提高其长期价值。请edit您的回答添加一些解释,包括您所做的假设。 @Melebius,更新了答案,希望现在可以澄清这个想法

以上是关于如何在 NSMutableArray 中选择特定索引并存储在 nsarray [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何获取 NSMutableArray 特定对象

在 NSMutableArray 的特定索引处添加对象

如何根据 NSMutableArray 中的特定 URL 动态创建 MKTileOverlay

如何将特定 NSMutableArray 中的数据重新加载到 UITableView

如何在 Visual Studio Code 中搜索具有特定扩展名且包含特定文本的文件

如何在URL中搜索具有特定类别的项目