【问题标题】:Getting Value from Dictionary从字典中获取价值
【发布时间】:2016-05-09 01:35:01
【问题描述】:
        data =     (
            {
        date = "2016-01-20";
        "end_time" = "11:10:00";
        "function_code" = RCV;
        "operator_id" = JOHN;
        "start_time" = "11:00:00";
        "total_time" = 10;
        "total_units" = 19;
        },
            {
        date = "2016-01-20";
        "end_time" = "12:25:00";
        "function_code" = PIK;
        "operator_id" = JOHN;
        "start_time" = "12:15:00";
        "total_time" = 10;
        "total_units" = 26;
        }
     )

这个数组包含 2 个字典,我必须从第一个字典中获取结束时间,从第二个字典中获取开始时间,我想从这个值计算中断时间。我知道如何获取值字典。 data[0][@"end_time"] 和 data[1][@"start_time"] 如果数组包含两个元素,这就足够了。但是如果数组有超过 5 个方法,我想迭代数组。我会更新我的编码我所做的... 我的数组名称是 arrData

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

                    dictData =arrData[i];


                 NSString *startTime =[dictData objectForKey:@"start_time"];

                 NSString *totalTime = [dictData objectForKey:@"total_time"];
                 NSNumber *numTotalUnits =[dictData objectForKey:@"total_units"];
                 NSString *functionCode = [dictData objectForKey:@"function_code"];
                 NSString *endTime = [dictData objectForKey:@"end_time"];
                    NSLog(@"%@",endTime);



                    [array1 addObject:endTime];


                    if (arrData[i+1] > arrData.count) {


                        dictData = arrData[i+1];
                        NSLog(@"%@",dictData);

                        NSString *strStartTime = [dictData objectForKey:@"start_time"];
                        NSLog(@"%@",strStartTime);

                        [array1 addObject:strStartTime];


                        NSLog(@"%@",array1);


                    }

             }

我尝试了这种编码,但出现了索引 2 超出范围[0..1] 之类的错误

【问题讨论】:

  • data[0][@"end_time"]data[1][@"start_time"]?
  • 如果你不知道如何获取数组或字典的元素,你根本无法在Objective-C中编程。我建议你在继续之前停下来学习语言。
  • 感谢回复,不好意思忘了说,这里我要计算休息时间,因为我只想要结束时间和开始时间。数据[0][@"end_time"]和数据[1][@"start_time"] 这个答案没问题。如果数组包含 2。如果超过 5 的意思,所以我想迭代它并想要结束时间和开始时间。你能帮我吗?提前谢谢跨度>
  • @matt 请看我上面的评论。我知道如何从数组和字典中获取元素。当我得到像索引 2 越界 [0..1] 之类的错误时
  • 您应该编辑问题以包含您要解决的实际问题。还包括您尝试过的任何代码。

标签: ios objective-c dictionary


【解决方案1】:

试试for (int i = 0; i &lt; arrData.count - 1; i++) {

在您当前的代码中,您让i 在循环中等于arrData.count - 1,这意味着当您检查i + 1 时,您正在查看最后一个数组元素。

【讨论】:

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