首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在字典内部和字典数组中查找字典键

在字典内部和字典数组中查找字典键
EN

Stack Overflow用户
提问于 2013-05-01 21:39:24
回答 4查看 11.5K关注 0票数 3

我有一个包含几个NSMutableDictionary对象的数组。

每次填写文本字段并按下提交按钮时:

代码语言:javascript
运行
复制
//The strings
NSString *dateString = @"Date";
NSString *timeString = @"Time";
NSString *typeString = @"Type";

- (IBAction)addData:(id)sender {

[_myDictionary setObject:_dateLabel.text forKey:dateString];
[_myDictionary setObject:_nNumber.text forKey:timeString];
[_myDictionary setObject:_type.text forKey:typeString];

[_myArray addObject:_myDictionary];

[self display]
}

然后,我尝试在UItextView中显示结果(在本例中为date),但我不知道如何显示。

代码语言:javascript
运行
复制
    -(void)displayData{

    for (int i = 0; i<_myArray.count; i++) {
        [_myArray objectAtIndex:i];
        outputString = [outputString stringByAppendingFormat:@"%@\n",[_myDictionary objectForKey:@"Date"]];

    }
    _myTextView.text = [NSString stringWithFormat:@"%@",outputString];

}

这最终显示数组中最后一个Dictionary的日期。我甚至不知道如何从特定的字典中记录日期。

[_myArray objectAtIndex:3] [_myDictionary objectForKey:@"Date"]。我如何记录第三个索引中的日期?

希望这是有意义的

代码语言:javascript
运行
复制
EDIT SOLUTION

for (int i = 0; i<_myArray.count; i++)
    {

        outputString = [outputString stringByAppendingFormat:@"%@ %@\n",[[_myArray objectAtIndex:i]objectForKey:@"Date"], [[_myArray objectAtIndex:i]objectForKey:@"Time"]];

    }
    _myTextView.text = [NSString stringWithFormat:@"%@",outputString];

}

感谢您的快速帮助!!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-05-01 21:48:45

代码语言:javascript
运行
复制
for(int i =0 ;i <[array count];i++)
{
  NSLog(@"%@",[[array objectAtIndex:i]allKeys]);
 }

此方法将打印所有密钥

票数 6
EN

Stack Overflow用户

发布于 2013-05-01 21:49:51

第一件事是每次向数组添加新对象时都必须分配一个新字典,否则字典将只保存最后一个值,因此

代码语言:javascript
运行
复制
 - (IBAction)addData:(id)sender 
 {

   NSMutableDictionary *_myDictionary=[[NSMutableDictionary alloc] init];

   [_myDictionary setObject:_dateLabel.text forKey:dateString];
   [_myDictionary setObject:_nNumber.text forKey:timeString];
   [_myDictionary setObject:_type.text forKey:typeString];

   [_myArray addObject:_myDictionary];

   [self display]
}

现在,so所在的部分正在显示值

代码语言:javascript
运行
复制
-(void)displayData
{
   for (int i = 0; i<_myArray.count; i++) 
  {
      NSMutableDictionary *dictionary = [_myArray objectAtIndexPath:i];

      outputString = [outputString stringByAppendingFormat:@"%@\n",[dictionary objectForKey:@"Date"]];

   }
   _myTextView.text = [NSString stringWithFormat:@"%@",outputString]; 

}
票数 1
EN

Stack Overflow用户

发布于 2013-05-01 21:47:57

试一试

代码语言:javascript
运行
复制
-(void)displayData{
    NSMutableString *outputString = [NSMutableString string];
    for (NSDictionary *dict in _myArray) {
        [outputString stringByAppendingFormat:@"%@\n",dict[@"Date"]];
    }

    _myTextView.text = [NSString stringWithString:outputString];
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16319191

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档