我的代码:
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
WARedeemReward *reward = [self feedForIndexPath:indexPath];
WARedeemRewardCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellRedeemRewardsType];
if (cell == nil) {
cell = [[WARedeemRewardCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:kCellRedeemRewardsType];
}
/*How to make sure rewardView model is also initialise once for every cell for row call*/
if (rewardViewModel == nil) {
NSString *redeemRewardViewModelType = [[AWPViewFactory sharedInstance] getValue:@"WARewardHistoryViewModel"];
rewardViewModel = [[NSClassFromString(redeemRewardViewModelType) alloc] initWithReward:reward];
}
/*How to make sure rewardView model is also initialise once for every cell for row call*/
[WARedeemRewardCellDataBinder setData:rewardViewModel forCell:cell];
cell.selectionStyle = UITableViewCellSeparatorStyleNone;
return cell;
}
我想以rewardViewModel
这样一种方式保持初始化,即每次cellForRowAtIndexPath
调用只初始化一次。可能是细胞的出队。
如果我保留实例变量rewardViewModel
,那么它将只初始化一次,并且在下一次迭代中cellForRowAtIndexPath
,同一个实例将被一次又一次地重用。
如果我删除实例变量并在其中创建局部变量rewardViewModel
,cellForRowAtIndexPath
那么alloc init
每次都会这样做,这是我不想要的。如下所示:
WARewardHistoryViewModel *rewardViewModel;
NSString *redeemRewardViewModelType = [[AWPViewFactory sharedInstance] getValue:@"WARewardHistoryViewModel"];
rewardViewModel = [[NSClassFromString(redeemRewardViewModelType) alloc] initWithReward:reward];
如何为行的单元格中的每次迭代初始化我指定的类一次?