由于私人'而func无法访问保护水平

时间:2016-09-27 22:24:27

标签: swift swift3

我尝试使用Swift 3在Xcode 8中将我的项目从iOS 8迁移到iOS 10.我遇到了一个错误,在我的扩展程序中我已经声明了一些文件私有函数,并且由于私人保护级别,这些功能中的方法无法访问。

这是我收到错误的地方:

extension VideoViewerViewController: SeekerViewDelegate {
fileprivate func seekerViewBeginSeeking(view: SeekerView) {
    self.shouldStartPlayingAfterSeek = self.player.rate > 0.0 //'shouldStartPlayingAfterSeek' is inaccessible due to 'private' protection level
    self.pause() //'pause()' is inaccessible due to 'private' protection level
}

这是我班级遵守的协议:

private protocol SeekerViewDelegate: class {
func seekerViewBeginSeeking(view: SeekerView)
func seekerView(view: SeekerView, didSeek progress: CGFloat)
func seekerViewDidEndSeeking(view: SeekerView)
}

我仍然在努力掌握fileprivate,private和internal的概念。

感谢所有帮助,谢谢

1 个答案:

答案 0 :(得分:23)

internal对当前模块是私有的。 fileprivate对当前文件(以前称为private)是私有的。新private对于当前范围是私有的(更接近大多数人可能认为是私有的)。