1.在 Swift 编程中,最吸引我的就是能在文件中创建多个扩展。这使得我可以把互相关联的方法放在一起。比如每次我向控制器添加一个新协议时,就可以把这个协议的方法放在同一个扩展中。同理,TableView 相关的私有样式初始化方法或者私有 cell 初始化方法都可以放入各自的扩展中。
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var tableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
styleNavigationBar()
}
}
private typealias TableViewDataSource = ViewController
extension TableViewDataSource: UITableViewDataSource {
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 5
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("identifier", forIndexPath: indexPath)
return cell
}
}
private typealias TableViewDelegate = ViewController
extension TableViewDelegate: UITableViewDelegate {
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
return 64.0
}
}
private typealias ViewStylingHelpers = ViewController
private extension ViewStylingHelpers {
func styleNavigationBar() {
// style navigation bar here
}
}
按照上面的写法 就能优雅的命名对应的扩展
网友评论