0

グループ化された UITableView を含み、XMLparser を使用してデータを取得するビューを開発しています。

私の XMLParser は NSDictionary データを NSArray に格納します。

cellForRowAtIndexPath で、UITableView を動的に設定するためにこれを書きました。

-(UITableViewCell*) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"CellArticle";


UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {

    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];

}
//configuration cellule

if(mParser.summaryArray == nil||[mParser.summaryArray count]==0)
{
//do nothing
}
else {
NSDictionary *sommaire=[mParser.summaryArray objectAtIndex:0];
cell.textLabel.text=[NSString stringWithFormat:@"%@",[sommaire objectForKey:kArticle]];
[mParser.summaryArray removeObject:[mParser.summaryArray objectAtIndex:0]];
}


return cell;
}

問題は、ビューが読み込まれるとセルが正しく設定されますが、テーブルを下にスクロールするとセルが混在し、一部が欠落することです。また、テーブルの制限に達すると、クラッシュして次のエラーが返されます。

* -[UITableView _createPreparedCellForGlobalRow:withIndexPath:]、/SourceCache/UIKit_Sim/UIKit-1914.84/UITableView.m:6061 でのアサーションの失敗

* キャッチされない例外 'NSInternalInconsistencyException' が原因でアプリを終了します。理由: 'UITableView dataSource must return a cell from tableView:cellForRowAtIndexPath:'**

何が問題なのですか?

4

1 に答える 1

0

あなたの の代わりに、あなた// do nothingはそこで をやりませんreturn nil;か?それ以外の場合は、空白のラベル テキストで埋められたセルを返すだけです。

編集

ここに NSLog() を追加できますか:

cell.textLabel.text=[NSString stringWithFormat:@"%@",[sommaire objectForKey:kArticle]];
NSLog(@"kArticle = '%@' text = '%@'", kArticle, cell.textLabel.text);
[mParser.summaryArray removeObject:[mParser.summaryArray objectAtIndex:0]];
于 2012-06-12T10:29:26.773 に答える