【问题标题】:loop through NSDictionary to create NSArray循环遍历 NSDictionary 以创建 NSArray
【发布时间】:2012-02-21 14:06:29
【问题描述】:

我有以下 NSDictionary 数据:

{
    "ADDED_DATE" = "2011-02-04 00:56:44.732014";
    "ADDED_LOGON" = ABCD;
    "AGENT_BROKER_IND" = N;
    "ALLOCATION_IND" = AUTOPROP;
    "BILLPRINT_DLVY_IND" = PAPER;
    "BILLPRINT_LOCATION_NAME" = "COMPANY ABC";
    "BILLPRINT_LVL_CIM" = 05852015;
    "BILL_DUE_DT" = "2011-02-01";
    "BILL_LOGO_CD" = XXLOGO;
    "BILL_PERIOD_MONTH" = 02;
    "BILL_PER_BEG_DT" = "2011-02-01";
    "BILL_PER_END_DT" = "2011-02-28";
    "BILL_RUN_DT" = "2011-02-03";
    "BILL_TOTAL_PREMIUM" = "342.84";
    IDX = ".000339709222474931";
    "LIST_BILL_CASE_NUM" = 0318T4;
    "LIST_BILL_CIM" = 05852019;
    "OWNING_CARRIER" = WX;
    "PAST_DUE_DT" = "2011-03-04";
    "REMIT_CYCLE" = MONTHLY;
    "RUN_NUMBER" = 1;
    "TOTAL_ADJUSTMENTS" = "0.00";
    "TOTAL_AMOUNT_DUE" = "685.68";
    "TOTAL_CURRENT_CHARGES" = "342.84";
    "TOTAL_PASTDUE_AMOUNT" = "342.84";
},
    {
    "ADDED_DATE" = "2010-12-04 08:20:45.292516";
    "AGENT_BROKER_IND" = N;
    "ALLOCATION_IND" = AUTOPROP;
    "BILLPRINT_DLVY_IND" = WEBPORTAL;
    "BILLPRINT_LOCATION_NAME" = "ANCHOR ABC";
    "BILLPRINT_LVL_CIM" = 05721991;
    "BILL_DUE_DT" = "2010-12-15";
    "BILL_FORM_TYPE_CD" = FE4;
    "BILL_LOGO_CD" = XXLOGO;
    "BILL_PERIOD_MONTH" = 01;
    "BILL_PER_BEG_DT" = "2011-01-01";
    "BILL_PER_END_DT" = "2011-01-31";
    "BILL_RUN_DT" = "2010-12-03";
    "BILL_TOTAL_PREMIUM" = "277.96";
    IDX = ".000389371998789428";
    "LIST_BILL_CASE_NUM" = 9858Q8;
    "LIST_BILL_CIM" = 05721991;
    "OWNING_CARRIER" = FE;
    "PAST_DUE_DT" = "2010-12-31";
    "REMIT_CYCLE" = MONTHLY;
    "RUN_NUMBER" = 1;
    "TOTAL_ADJUSTMENTS" = "0.00";
    "TOTAL_AMOUNT_DUE" = "277.96";
    "TOTAL_CURRENT_CHARGES" = "277.96";
    "TOTAL_PASTDUE_AMOUNT" = "0.00";
},

我正在尝试弄清楚如何将这些数据转换为数组。在这个例子中,我需要将它分解为 2 个数组,这些数组填充了它的数据(希望有意义)。

我可以像这样遍历数据:

NSString *key;

for (key in finalDict) {
    NSLog(@"%@", key);
}

我在“key”中获取每个“数组”数据......但是如何将它从那里分解成它自己的数组?对不起,如果我感到困惑。 =)

感谢您的帮助!

【问题讨论】:

  • 你想完成什么。另外,如果你想要单独的数组,你想要一个数组数组还是每个数组单独?
  • 我正在尝试获取这些数据......并在 UITableView 中使用它。每个数据“数组”都是它自己的行。
  • 我认为最好有一个数组数组,但我对此很陌生(但学得很快),所以最好在 UITableView 上使用。非常感谢您的帮助!
  • 那么字典中的每个条目都会是一个 TableView 单元格吗?换句话说,每个单元格将包含一个“ADDED_DATE”、“AGENT_BROKER_IND”等?

标签: iphone ios nsarray nsdictionary


【解决方案1】:

所以,从你的代码来看,在我看来你有一个 NSDictionaries 的 NSArray。如果您真的想将所有数据加载到 UITableView 中,我建议您在 cellForRowAtIndexPath 方法中创建一个 NSDictionary 并使用当前索引 NSDictionary 加载它,如下所示:

NSDictionary *currentDictionary = [self.myArrayOfDictionaries objectAtIndex:indexPath.row];
    //now do some stuff with your dictionary
    cell.addedDate.text = [currentDictionary objectForKey:@"ADDED_DATE"];
    cell.agentBrokerInd.text = [currentDictionary objectForKey:@"AGENT_BROKER_IND"];
    ///etc.....

当然,这取决于您如何设置 UITableViewCell 以及您是否希望每个属性都有插座。

希望这会有所帮助。

【讨论】:

  • 漂亮!!非常感谢!对此,我真的非常感激。做到了!
【解决方案2】:

key 设为NSArray 类型,而不是NSString。然后您可以访问数组的元素,将它们添加到另一个数组或您想做的任何其他事情。 HereNSArray 文档。

【讨论】:

  • 啊……谢谢。不知道为什么我没有想到这一点。现在要弄清楚如何将其放入正确的数组中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-26
  • 2021-06-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多