我的协议定义在另一个Swift文件中不可见

时间:2015-06-14 08:53:58

标签: swift protocols

我有两个文件:DBStartViewController.swiftDBFindViewController.swift

当我定义protocol时:

protocol DBViewAnimationTransitioning {
    var viewForAnimation: UIView? { get set }
}
DBStartViewController.swift中的

DBFindViewController.swift中无法显示。我收到一个错误:

  

使用未声明的类型DBViewAnimationTransitioning

但是当我将我的声明移到DBFindViewController.swift时,一切都很好。为什么会这样?

我需要在DBStartViewController.swift中使用它才能使我的代码清晰明了。

3 个答案:

答案 0 :(得分:4)

如果您的班级位于不同的应用目标中,请确保使用public作为协议的访问修饰符。默认情况下它是internal,这意味着它在模块中共享,但从外部看不到。

答案 1 :(得分:0)

选择/打开协议时,请确保正确选中了右侧栏上的Target Membership

答案 2 :(得分:-2)

您可能在ViewController类中包含协议声明。在这种情况下,您可能需要致电DBStartViewController.DBViewAnimationTransitioning

可以肯定的是,我需要看一些代码。