方法不能声明,内部类型

时间:2017-01-06 21:54:15

标签: swift swift3

我有一位代表,我收到以下错误:

  

'方法不能声明为public,因为其参数使用内部类型'

这是代码。

public protocol CaptureViewControllerDelegate: class {
    /**
     Called when the `controller` captures an image.
     */
    // "error is here" func captureViewController(_ controller: ViewController, didCaptureStillImage image: UIImage?)
}

1 个答案:

答案 0 :(得分:5)

由于您的协议为public,因此ViewController的访问级别必须与public一样具有限制性或限制性较小。

由于Swift中没有任何限制或限制性比publicopen更严格,因此ViewController的访问级别必须声明为public或{{1 }}

我建议您查看Apple的Swift Access Control文档。除了不同的访问级别之外,文档还解释了openpublic之间的区别(开放的限制性比公开的要少)。

The Swift Programming Language - Access Control