我对cellForRowAt内部有疑问。 如果找不到dequeueReusableCell,那么如果该特定类型的单元格未出队,是否应该使应用程序明确崩溃。
示例-:
List<?> result = objects.stream().filter( r -> r!=null )
.collect(Collectors.groupingBy(
record -> {
try {
return cast.cast(PropertyUtils.getNestedProperty(record, field.getName()));
}catch(Exception e) {
System.out.println("Property not found.");
}
return null;
}))
.entrySet().stream()
.map( e -> e.getValue().stream()
.reduce((f1, f2) -> {
try {
return (T) add(classDefination, f1, f2);
} catch (Exception e1) {
System.out.println("Error is method add()");
}
return null;
})
).map(f -> f.get())
.collect(Collectors.toList());
这样做是最好的做法,还是有其他办法
答案 0 :(得分:5)
最好的方法是强制解开出队的单元格(不要开玩笑)。
let productImageSideViewsCell = tableView.dequeueReusableCell(withIdentifier: ProductsSideViewsCell.identifier, for: indexPath) as! ProductsSideViewsCell
首先,API dequeueReusableCell(withIdentifier:for:)
始终返回有效的单元格。
在少数情况下,强制展开非常有用,因为它会发现 design 设计错误。
如果一切都在Interface Builder中正确连接(在运行时不会更改),则代码绝不能崩溃。