objective-c中registerClass的用法?作用是什么?

registerClass我记得是iOS6新加的
在此之前cell的重用写法是

static NSString *ID = @"cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:ID]; 
}

 而之后多了这种写法

static NSString *ID = @"cell";
[self.tableView registerClass:[MyCell class] forCellReuseIdentifier:ID];
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID forIndexPath:indexPath];

 区别在于之前的写法取出重用cell的时候可能是空的

而后来的写法如果取出空的那就自动创建一个新的 register就是告诉它创建个什么样的

转自知乎:http://www.zhihu.com/question/28287313

相关推荐