dequeueReusableCellWithIdentifier 和 dequeueReusableCellWithIdentifier: forIndexPath: 的区别

当我们调用这两个方法其中一个方法根据Identifiercell的重用队列池取cell的时候,如果我们在调用方法之前已经注册一个绑定Identifierclass,那么一定会取出一个可重用的cell。注册一个绑定Identifierclass,此方法会调用cellinitWithStyle:reuseIdentifier: 方法来初始化cell。对于xib描述的cell,这个方法会从指定的xib文件中加载cell。如果有存在的并且可复用的cell, 此方法会调用cell的prepareForReuse

1、dequeueReusableCellWithIdentifier

dequeueReusableCellWithIdentifier 和 dequeueReusableCellWithIdentifier: forIndexPath: 的区别_第1张图片
image.png

从苹果开发者文档中可以看出, A UITableViewCell object with the associated identifier or nil if no such object exists in the reusable-cell queue.此方法可以返回一个 UITableViewCell对象或者 nil。如果没有可复用的cell,并且没有注册一个 class或者 nib文件,此方法会返回 nil

注意:当我们用此方法根据Identifier来取cell的时候,此方法会先判断是否手动初始化一个cell,如果没有手动初始化cell,那就判断有没有注册cell,如果也没有注册cell, 那就根据Identifier看storyBoard中是否存在绑定此标识的cell,如果没有存在绑定此标识的cell, 那就返回nil

2、dequeueReusableCellWithIdentifier: forIndexPath:

dequeueReusableCellWithIdentifier 和 dequeueReusableCellWithIdentifier: forIndexPath: 的区别_第2张图片
image.png

注意:使用此方法从cell重用队列取cell的时候,必须在调用此方法之前注册class或者nib

你可能感兴趣的:(dequeueReusableCellWithIdentifier 和 dequeueReusableCellWithIdentifier: forIndexPath: 的区别)