如何在 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 中的特定 URL 动态创建 MKTileOverlay
如何将特定 NSMutableArray 中的数据重新加载到 UITableView