2

他のいくつかの質問を確認しましたが、なぜこれが発生しているのか理解できません。私が知っているのは、この質問の説明コードを使用した後、セルの値はnullです。delegatedatasourceを正しく設定しましたがtable、これがどこで間違っているのかわかりません。

次のメソッドの戻り値を0に設定すると、cellForRowAtIndexPathメソッドが実際には実行されないため、エラーは発生しません。したがって、1に設定すると(当然のことながら)、エラーがスローされます。私はを合成し、NSArrayそのデータが入力されていることを確認しました(ただし、これは問題ではありません)。基本的には、を押しbuttonて検索し、結果をに配置しますtable。したがって、この前tableviewは空です。

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}

これがcellForRowAtIndexPathメソッド自体です。基本的なテンプレートメソッドを使用してみましたが、それでも同じエラーがスローされます。

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath     *)indexPath
    {
        static NSString *CellIdentifier = @"Cell";
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    // Configure the cell...

    NSDictionary *aResult = [results objectAtIndex:[indexPath row]];
    NSLog(@"RESULTS IN TABLE %i", [results count ]);


    id key = [results objectAtIndex:[indexPath row]];
    resultTitle.text=@"Hello";

    NSURL *url = [NSURL URLWithString:[aResult objectForKey:@"url"]];
    NSData *data = [NSData dataWithContentsOfURL:url];
    cell.imageView.image = [UIImage imageWithData:data];
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
    [theTableView reloadData];

    return cell;
}

何が悪いのかわかりません。私はtableviews以前に使用し、このプロジェクトを他のプロジェクトと比較して、何かを見逃していないかどうかを確認しましたが、実際の違いはわかりません。

4

2 に答える 2

6

dequeueメソッドからnilが返された場合、セルを初期化することはありません。

変化する

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (!cell)
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
于 2012-07-28T16:19:30.740 に答える
1

セクション0の行数を返すメソッドがありません。これは必須のデータソースメソッドです(この場合)。

于 2012-07-28T16:14:13.017 に答える