我们需要在cellForRowAt上执行崩溃应用程序吗

时间:2018-06-23 09:41:58

标签: ios swift uitableview

我对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());

这样做是最好的做法,还是有其他办法

1 个答案:

答案 0 :(得分:5)

最好的方法是强制解开出队的单元格(不要开玩笑)。

let productImageSideViewsCell = tableView.dequeueReusableCell(withIdentifier: ProductsSideViewsCell.identifier, for: indexPath) as! ProductsSideViewsCell

首先,API dequeueReusableCell(withIdentifier:for:)始终返回有效的单元格。

在少数情况下,强制展开非常有用,因为它会发现 design 设计错误。
如果一切都在Interface Builder中正确连接(在运行时不会更改),则代码绝不能崩溃。