UITableViewCell延迟实例化单元格

时间:2015-03-23 22:13:46

标签: ios objective-c algorithm uitableview lazy-initialization

我有一个名为 UserProductViewController 的UITableView,这个表视图用于两个目的" 创建和编辑"一些数据。当用户点击"编辑按钮"打开此 UserProductViewController 编辑模式,并在其他方法的单元格中填充一些数据。我不想将所有服务器端值存储在属性中,而是使用了Lazy instantiation cell。这种方法有时会带来麻烦。要清楚这里是我的代码这种方法是否正确?你能指导我这样做的正确方法吗?

实施界面

@interface UserProductViewController() 
@property(strong, nonatomic) MyCustomTableViewCell *myCustomCell;
@end

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    ...

    if(indexPath.row == 2) return self.myCustomCell;

    ...
}

- (MyCustomTableViewCell *)myCustomCell {
    if(!_myCustomCell) {
        _myCustomCell = [self.tabView dequeueReusableCellWithIdentifier:@"CustomIdentifier" forIndexPath:[self customIndexPath]];
    }

    return _myCustomCell;
}

- (NSIndexPath *)customIndexPath {
    // 2 correspond to cellForRowAtIndexPath indexPath value.   
    return [NSIndexPath indexPathForRow:2 inSection:0];
}

服务器端方法我将该单元格用作以下属性:

- (void) getUserValues {

        ....
        // getting server-side result
       //  completion block
      self.myCustomCell.titleLabel = result.title;
}

其他问题如果我不想使用tableview dequeue系统会发生什么?

0 个答案:

没有答案