我在这里和IOS编程都很新,所以请暂时忍受我的新问题:]
以下是我的申请前的情况:
我有一个视图,其中我添加了3个不同的子视图。 (1类,2字和3条规则) 在类别子视图中,我有一个类别表。 (从类别plist和数组中读取和写入)
根据所选类别,我正在更改单词子视图中的单词表的表格成分。此表保留用户为所选类别输入的单词。 (从nsmutabledictionary读取和写入,其键是来自类别表的类别名称,其值是由我预先输入到plist的字符串数组)
现在举例说明: 我的类别数组有:大小,颜色 我对大小类别的单词数组有3个字符串,如:“tiny”,“big”,“huge” 我的单词数组类别有两个字符串,如:“red”,“blue”
首先,当我选择“大小”类别时,我去取得该类别中的单词,当我从类别子视图移动到单词子视图时,我会在我的uitableview中正确看到“大小”类别中的所有内容。 (它打印“微小”,“大”和“巨大”)
但是当我回到我的类别子视图并选择“颜色”这一次并回到单词子视图时我会崩溃。
好像它调用tableView:cellForRowAtIndexPath:方法,我得到一个NSRangeException,如下所示:
[NSMutableArray objectAtIndex:]: index 2 beyond bounds
长话短说,我想知道为什么cellForRowAtIndexPath方法正在调用不存在的索引。以下是我的cellForRowAtIndexPath方法的内容:
[self reinitializeWordsDictionary];
[self reinitializeWordsInSelectedCategoryArray];
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc]
initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:CellIdentifier] autorelease];
}
cell.textLabel.text = [wordsInSelectedCategoryArray objectAtIndex:indexPath.row];
return cell;
提前感谢您的答案,
TIW
答案 0 :(得分:3)
如果读取此内容的任何人都没有被cellForRowAtIndexPath抛出NSRangeExceptions,请检查以确保您的UITableView没有被错误地设置为“静态单元格”内容。
答案 1 :(得分:0)
听起来- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
数据源的UITableView
方法提供了错误的值。我会通过在此方法上设置断点并检查返回值来检查。
答案 2 :(得分:0)
你在回答什么?
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;