我有一位代表,我收到以下错误:
'方法不能声明为public,因为其参数使用内部类型'
这是代码。
public protocol CaptureViewControllerDelegate: class {
/**
Called when the `controller` captures an image.
*/
// "error is here" func captureViewController(_ controller: ViewController, didCaptureStillImage image: UIImage?)
}
答案 0 :(得分:5)
由于您的协议为public
,因此ViewController
的访问级别必须与public
一样具有限制性或限制性较小。
由于Swift中没有任何限制或限制性比public
或open
更严格,因此ViewController
的访问级别必须声明为public
或{{1 }}
我建议您查看Apple的Swift Access Control文档。除了不同的访问级别之外,文档还解释了open
和public
之间的区别(开放的限制性比公开的要少)。