Swift 之Protocol在cocoa中的使用范例搜集
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Swift 之Protocol在cocoa中的使用范例搜集相关的知识,希望对你有一定的参考价值。
protocol Reusable: class { static var reuseIndentifier: String {get} static var nib: UINib? {get} } extension Reusable { static var reuseIndentifier: String { return String(Self) } static var nib: UINib? { return nil } } extension UITableView { func registerReusableCell<T: UITableViewCell where T: Reusable>(_: T.Type) { if let nib = T.nib { self.registerNib(nib, forCellReuseIdentifier: T.reuseIndentifier) }else { self.registerClass(T.self , forCellReuseIdentifier: T.reuseIndentifier) } } func dequeueReusableCell<T: UITableViewCell where T: Reusable>(indexpath : NSIndexPath) -> T { return self.dequeueReusableCellWithIdentifier(T.reuseIndentifier, forIndexPath: indexpath) as! T } func registerReusableHeaderFooterView<T: UITableViewHeaderFooterView where T: Reusable>(_: T.Type) { if let nib = T.nib { self.registerNib(nib, forHeaderFooterViewReuseIdentifier: T.reuseIndentifier) } else { self.registerClass(T.self, forHeaderFooterViewReuseIdentifier: T.reuseIndentifier) } } func dequeueReusableHeaderFooterView<T: UITableViewHeaderFooterView where T: Reusable>() -> T? { return self.dequeueReusableHeaderFooterViewWithIdentifier(T.reuseIndentifier) as! T? } } class JHTableViewCell: UITableViewCell, Reusable { static var nib: UINib? { return UINib(nibName: String(JHTableViewCell.self), bundle: nil) } override func awakeFromNib() { super.awakeFromNib() } override func setSelected(selected: Bool, animated: Bool) { super.setSelected(selected, animated: animated) } }
class CodeBasedCustomCell: UITableViewCell, Reusable { }
以上是关于Swift 之Protocol在cocoa中的使用范例搜集的主要内容,如果未能解决你的问题,请参考以下文章
《从零开始学Swift》学习笔记(Day 63)——Cocoa Touch设计模式及应用之单例模式
如何使用 Storyboards/Cocoa 在 Swift 3.x 中引用视图的窗口