UICollectionView有一个方法indexPathsForVisibleItems,它返回索引路径数组。其中UITableView具有类似的方法indexPathsForVisibleRows,它也返回索引路径数组,但它是可选的。为什么Apple自身的两种类似方法有区别?
答案 0 :(得分:1)
因为Apple开发人员并不完美,他们并不总是一致。
UITableView
自iOS 2.0以来一直存在,如果没有可见的行,有人在2008年决定返回nil
。
UICollectionView
,如果没有可见的行,有人决定返回一个空数组而不是nil
。
当然这完全在Objective-C中。当Swift出现时,这意味着UITableView indexPathsForVisibleRows
需要是可选的,因为Objective-C属性可能是nil
。
BTW - 在macOS中,NSCollectionView indexPathsForVisibleItems
是一个函数而不是属性,它是一个集合,而不是一个数组。再次,不一致。