【问题标题】:Method cannot be declared, internal type方法不能声明,内部类型
【发布时间】:2017-01-06 21:54:15
【问题描述】:

我在这里有一个代表,我收到以下错误:

'方法不能被声明为public,因为它的参数使用了内部类型'

这里是代码。

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

【问题讨论】:

  • ViewController public?还是您的意思是改用UIViewController

标签: swift swift3


【解决方案1】:

由于您的协议是public,因此ViewController 的访问级别必须与public 一样限制或限制更少。

由于在 Swift 中没有什么比 publicopen 更严格或更少限制,所以 ViewController 的访问级别必须声明为 publicopen

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

The Swift Programming Language - Access Control

【讨论】:

  • 感谢这个有用的答案,我遇到了类似的问题(与这个问题不完全匹配,但你的回答帮助我解决了我的问题,解决了这个错误)“方法不能被声明为公共,因为它的参数使用内部类型'
  • 这就是答案!!非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-12
  • 1970-01-01
相关资源
最近更新 更多