我是SWIFT编程的新手,并且正在关注Ray Wenderlich关于集合视图的教程。我找到了他们实现collectionView数据源作为扩展的代码。我知道什么是扩展(扩展为现有类添加新功能) - 但我仍然无法理解在这种情况下这样做的优势。
extension FlickrPhotosViewController : UICollectionViewDataSource {
//1
override func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int {
return searches.count
}
//2
override func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return searches[section].searchResults.count
}
//3
override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifier, forIndexPath: indexPath) as! UICollectionViewCell
cell.backgroundColor = UIColor.blackColor()
// Configure the cell
return cell
}
}
问题 - 实施 UICollectionViewDataSource
的区别是什么
class FlickrPhotosViewController: UIViewController,UICollectionViewDataSource
然后向数据源代表确认。 当我们通过扩展实现它时,我们还有什么优势。除了只使我们的程序结构看起来很好之外,它还提供任何其他帮助吗?