0

私はiPhone開発の初心者です。

私は配列の辞書を持っています。

{
    A =     (
               {
                address = "Talala (gir)";
                "main_id" = 1;
                mobile = 8878876884;
                name = "Amit Patel";
               },
               {
                address = "Junagdh";
                "main_id" = 5;
                mobile = 4894679865;
                name = "Arjun Patel";
               }
            );
        J = (
                {
                address = "Taveli";
                "main_id" = 6;
                mobile = 87886356085878;
                name = "Jasmin Patel";
                },
                {
                address = "Gujarat";
                "main_id" = 4;
                mobile = 6636633368;
                name = "Jatin ";
               }
           );
        R =     (
                    {
                address = "Mumbai";
                "main_id" = 2;
                mobile = 999686322;
                name = "Rajan Patel";
            }
        );
        S =     (
                    {
                address = "Rajkot";
                "main_id" = 3;
                mobile = 8866086549;
                name = "Sumit Patel";
            }
        );
    }

キーがオンになってUITableViewいる値を表示したい"name"UITableViewCell

私のcellForRowAtIndexPath方法は

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }

    cell.textLabel.text = [[[self.finalPDic objectForKey:[self.listOfHeader objectAtIndex:indexPath.row]] objectAtIndex:indexPath.row] objectForKey:@"name"];
    return cell;
}

しかし、上記のコードは私にとってはうまくいきません。

4

2 に答える 2

1

このコードにはかなりの問題があります...

最初の indexPath.row は indexPath.section でなければなりません

一般的なヒントとして、次のようにコードをより読みやすく整理することをお勧めします。

NSArray* nameArrayForLetter = [self.finalPDic objectForKey:[self.listOfHeader objectAtIndex:indexPath.section];
NSDictionary* addressDict = [nameArrayForLetter objectAtIndex:indexPath.row];
NSString* nameString = [addressDict objectForKey:@"name"];
于 2013-04-17T07:06:07.433 に答える
0

コードはルート キーを 1 つずつ繰り返し処理しますが、下位レベルのインデックス 0 から開始することはありません。(S キーは 4 番目なので、存在しない配列の 3 番目の項目が必要です。

セクションを使用してみてください。A..S はセクションで、行は名前です!

于 2013-04-17T07:03:44.847 に答える