【问题标题】:load NSDictionary from NSMutableArray?从 NSMutableArray 加载 NSDictionary?
【发布时间】:2013-01-22 12:12:33
【问题描述】:

我正在尝试从数组中访问字典。

我像这样将对象添加到字典中

[_recentDictionary setObject:videoString forKey:@"video"];
[_recentDictionary setObject:imageString forKey:@"image"];
[_recentDictionary setObject:titleString forKey:@"title"];
[_recentDictionary setObject:descriptionString forKey:@"desc"];

然后我将字典添加到这样的数组中

for (int i = 0; i<10; ++i)
{
      if (i == 0) {
            [self.recentArray addObject:_recentDictionary];
      }
}

然后通过 nsuserdefault 保存数组

_savedArray = [NSUserDefaults standardUserDefaults];
[_savedArray setObject:self.recentArray forKey:@"recentArray"];
[_savedArray synchronize];

在另一个视图中调用上面的方法

NSUserDefaults *savedDefaults = _showListView.savedArray;

NSMutableArray *savedArray = [[NSMutableArray alloc]initWithObjects:[savedDefaults objectForKey:@"recentArray"], nil];

但我不知道如何访问这个数组中的字典。

【问题讨论】:

  • 我看到你正在使用_properties,我建议你使用self.properties

标签: objective-c nsarray nsdictionary nsuserdefaults


【解决方案1】:

在字典中逐一检索数组元素。

NSDictionary *dict = [savedArray objectAtIndex:0];

然后根据您的要求访问字典(dict)的元素。

【讨论】:

  • 感谢您的建议,但它仍然返回所有对象,似乎所有对象都在同一个索引处?
  • 为什么要使用 for 循环在数组中添加字典。直接使用 [self.recentArray addObject:_recentDictionary];并删除 for 循环。
  • 这是我接下来要研究的其他内容。这样做的原因是因为我想在索引 0 处添加字典,然后在索引 1 处添加,依此类推,直到索引 10。10 是最大值。当达到 10 时,我需要删除索引 0 处的对象,然后将所有其他对象向上移动一个索引。每个字典将包含不同的对象
  • 好的,请查看我更新的答案。这里检索第 0 个索引的对象并将其存储在字典中,然后访问字典的元素。
  • NSDictionary *recentDection = savedArray[0]; NSLog(@"最近的 12 月 = %@",recentDection);将返回 2013-01-22 12:44:46.439 Ch - IOS[9512:907] 最近的 Dec = ( { desc = "desc1"; image = "img1.jpg"; title = "title1"; video = "video1" ; } ) 我将如何访问让我们说“标题”
【解决方案2】:

你可以访问字典为

recentDictionary = [savedArray objectAtIndex:0];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多