我的协议定义在另一个 Swift 文件中不可见
My protocol definition is not visible in another Swift file
我有两个文件:DBStartViewController.swift
和 DBFindViewController.swift
当我定义我的 protocol
:
protocol DBViewAnimationTransitioning {
var viewForAnimation: UIView? { get set }
}
在 DBStartViewController.swift
中它在我的 DBFindViewController.swift
中不可见。我得到一个错误:
Use of undeclared type DBViewAnimationTransitioning
.
但是当我将声明移至 DBFindViewController.swift
时,一切正常。为什么会这样?
我需要在我的 DBStartViewController.swift
中包含它,以使我的代码清晰明了。
您的 ViewController class 中可能有协议声明。在这种情况下,您可能需要调用 DBStartViewController.DBViewAnimationTransitioning
.
当然,我需要多看一点代码。
如果您的 类 驻留在单独的应用程序目标中,请确保使用 public
作为协议的访问修饰符。默认情况下它是 internal
,这意味着它在模块内共享,但从外部不可见。
当您的协议为 selected/opened 时,请确保正确选中右侧栏中的 Target Membership
。
我有两个文件:DBStartViewController.swift
和 DBFindViewController.swift
当我定义我的 protocol
:
protocol DBViewAnimationTransitioning {
var viewForAnimation: UIView? { get set }
}
在 DBStartViewController.swift
中它在我的 DBFindViewController.swift
中不可见。我得到一个错误:
Use of undeclared type
DBViewAnimationTransitioning
.
但是当我将声明移至 DBFindViewController.swift
时,一切正常。为什么会这样?
我需要在我的 DBStartViewController.swift
中包含它,以使我的代码清晰明了。
您的 ViewController class 中可能有协议声明。在这种情况下,您可能需要调用 DBStartViewController.DBViewAnimationTransitioning
.
当然,我需要多看一点代码。
如果您的 类 驻留在单独的应用程序目标中,请确保使用 public
作为协议的访问修饰符。默认情况下它是 internal
,这意味着它在模块内共享,但从外部不可见。
当您的协议为 selected/opened 时,请确保正确选中右侧栏中的 Target Membership
。