【问题标题】:Retrieve NSDictionary from NSMutableArray从 NSMutableArray 中检索 NSDictionary
【发布时间】:2012-02-16 21:06:08
【问题描述】:

我正在尝试将 NSDictionary 放在 NSArray 中。我的目标是数组中的每个对象都是一个包含两个键和两个对象的字典。所以字典的键将被称为“TITLE”和“AUTHOR”,每个都有一个值,整个内容将存储在一个 NSMutableArray 对象中。

这是我的代码(dataSource 是一个包含标题列表的数组,author 是一个包含相应作者列表的数组,searchedData 是我希望字典进入一个对象的数组):

for (int i = 0; i<[dataSource count]-1; i++) {
    NSLog(@"in");
    NSString *authorString = [NSString stringWithFormat:@"%@",[author objectAtIndex:i]];
    NSString *titleString = [NSString stringWithFormat:@"%@",[dataSource objectAtIndex:i]];
    NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:titleString, @"TITLE",authorString,@"AUTHOR", nil];
    [searchedData addObject:dict];
}

我试过了,但要么不起作用,要么我不知道如何从数组中的字典中读取数据。我希望能够说“从 searchedData 的对象 n 中的字典中获取关键“标题”的对象,但我不知道如何。

非常感谢!!!

卢克

【问题讨论】:

  • 您不能将对象添加到 NSArray 或 NSDictionary。您必须使用您希望它包含的任何内容来创建每种类型,然后就是这样。它们是不可变的对象。如果要更改它们,则必须使用 NSMutableArray 或 NSMutableDictionary。
  • 抱歉,数组是可变的(但字典不是,这有关系吗?)
  • 在哪里创建 searchedData 数组?
  • 抱歉,我编辑了问题以包含该内容。

标签: objective-c ios nsmutablearray nsarray nsdictionary


【解决方案1】:

试过了吗?

NSDictionary *nthDict = [mutableArray objectAtIndex:n];
NSString *title = [nthDict objectForKey:@"TITLE"];
NSString *author = [nthDict objectForKey:@"AUTHOR"];

【讨论】:

  • 嗨!谢谢,但是每个字符串都返回(null)。这是如何将 NSDictionary 插入到 NSMutableArray 中的问题,还是检索它的问题?
  • @LukeBaumann:如果我是一个赌徒,我会说 NSMutableArray 本身为零可能是个问题。
  • 感谢它现在的工作。问题是我忘了初始化数组(doh!)。
【解决方案2】:

您的for 循环会跳过dataSource 数组中的最后一个元素。除此之外,我看不到您的代码有任何问题。将不可变字典添加到数组中很好,像 H2CO3 显示的那样检索它也可以。

【讨论】:

    猜你喜欢
    • 2011-12-08
    • 1970-01-01
    • 2011-10-02
    • 1970-01-01
    • 2012-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多