编译器不喜欢使用Swift的UIScrollViewDelegate

在将UIScrollView实现到UITableViewCell时,我收到错误。

 class MyItemTableViewCell: UITableViewCell, UIScrollViewDelegate { ... var scrollView: UIScrollView = { let scroll = UIScrollView() scroll.showsHorizontalScrollIndicator = false scroll.delegate = self return scroll; }() ... func scrollViewDidScroll(scrollView: UIScrollView!) { ... } func scrollViewWillEndDragging(scrollView: UIScrollView!, velocity: CGPoint, targetContentOffset: CMutablePointer) { ... } ... } 

编译器在scroll.delegate = self行上给出了一个错误,说明Type MyItemTableViewCell does not conform to protocol 'UIScrollViewDelegate'

没关系这个事实,协议中的方法都记录为可选的( https://developer.apple.com/library/prerelease/iOS/documentation/UIKit/Reference/UIScrollViewDelegate_Protocol/index.html ),但我有两个实现。

编译器对我有什么要求?

谢谢

在初始化循环期间,在初始化所有属性之前,self不可用。 将其更改为:

 class MyItemTableViewCell: UITableViewCell, UIScrollViewDelegate { var scrollView: UIScrollView func scrollViewDidScroll(scrollView: UIScrollView!) { } func scrollViewWillEndDragging(scrollView: UIScrollView!, velocity: CGPoint, inout targetContentOffset: CGPoint) { } init() { scrollView = UIScrollView() scrollView.showsHorizontalScrollIndicator = false super.init(style:UITableViewCellStyle.Default, reuseIdentifier:"cell") scrollView.delegate = self } }