我有一个程序通过将项目存储在 NSMutableArray 中来解析来自 Web 服务的 xml,该 NSMutableArray 初始化如下:
- (id)init {
self = [super init];
if (self)
{
items = [[NSMutableArray alloc] init];
}
return self;
}
我已经使用 ScrollView 委托来检查用户何时点击 tableview 的底部,其中我正在调用 Web 服务的另一个页面以在已获取项目的底部加载更多项目。
但是当重新加载 tableview 时,它不会在已获取的底部添加新项目,而是只出现新项目。
在我可以使用动画设置 insertrowsatindexpaths 之前,我相信 NSMutableArray 正在再次初始化,这使得旧条目消失并仅显示新条目。我怎样才能让 NSMutableArray 只初始化一次,所以当它获取新条目时,它会在可变数组中已经获取的条目之后加载它们。
编辑
根据评论,看起来我对 MutableArray 做得很好,并且它只被初始化一次。那么数据源肯定有问题。
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [[channelFeed items] count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
ItemsViewCell *cell = (ItemsViewCell *)[tableView dequeueReusableCellWithIdentifier:@"UITableViewCell"];
if (cell == nil) {
cell = [[ItemsViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"UITableViewCell"];
}
FeedItem *item = [[channelFeed items] objectAtIndex:[indexPath row]];
cell.titleLabel.text = [item title];
cell.pubDateLabel.text = [item pubDate];
cell.creatorLabel.text = [item creator];
[[cell thumbImage] setImage:[item thumbnail]];
return cell;
}