学习过程中碰到的数组问题
当定义一个成员变量
{
NSArray *_dataArray;
}
以类方法初始化
- (void)initData{
_dataArray = @[@{key:value},@{key:value},@{key:value}.................,nil];
}
在实现tableViewDataSource 的协议
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIde = @"cellIde";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIde];
if (cell == nil)
{
cell = [[[UITableViewCell alloc]initWithStyle:(UITableViewCellStyleSubtitle) reuseIdentifier:cellIde]autorelease];
}
//NSMutableArray *array = [[NSMutableArray alloc]initWithObjects:_dataArray, nil];
NSDictionary *personInfo = _dataArray[indexPath.row];
cell.textLabel.text = personInfo[key];
cell.detailTextLabel.text = personInfo[key];
return cell;
}
这样初始化的数组在加载数据的时候可以显示,但是当滑动出屏幕,加载其它数据时,会报野指针错误
打断点发现_dataArray 数组为空,
网上扒帖子发现相关问题都是在实现的协议中进行了多余的release,
之后把初始化函数修改为
- (void)initData{
_dataArray =[ [NSArray alloc] initWithObjects:@{key:value},@{key:value},@{key:value}.................,nil];
}
在滑动时可以正常加载