检查此GitHub project的article。 通过自定义单元格的 prepareForReuse 方法(JKCallbacksTableViewCell类)将通知发送到表(RootViewController类),该表由 tableViewCellIsPreparingForReuse 方法观察。此方法重置关联键和单元格的图像视图。
那么,为什么作者更倾向于通过通知发送它而不是在从表的 dequeueReusableCellWithIdentifier 方法获取非零单元后重置它们?
根据documentation of UITableViewCell,在dequeueReusableCellWithIdentifier之前调用prepareForReuse。
如果UITableViewCell对象是可重用的 - 也就是说,它具有重用标识符 - 在从UITableView方法dequeueReusableCellWithIdentifier返回对象之前调用此方法:。
我测试过,当dequeueReusableCellWithIdentifier返回一个非nill值时,它会调用prepareForReuse。
作者在JKCallbacksTableViewCell.h中评论了应用程序逻辑分离,但我认为这是一种矫枉过正;使用异步调度优化性能,但发送这些慢速通知以重置某些属性......或者我是否遗漏了一些关于GCD的内容?
答案 0 :(得分:0)
大多数编程问题都有近乎无限的解决方案。我没有任何特别的理由选择通知,除了它们松散耦合的事实。
关于您对通知速度的评论:使应用程序变慢的因素是加载图片,因此我们正在尝试优化 。通知的速度不足以对应用程序的使用产生影响,因此,出于纯粹的性能原因而使用其他内容是没有根据的。
那就是说,它在GitHub中,所以随意发送一个不使用通知的pull请求。如果我更喜欢它,我会用它。