将两个 类 分配给同一个变量,这可能吗?

Assigning two classes to the same variable, is that even possible?

我有两个 类 属于同一个协议。

class CameraModel:CaptureProtocol {
}

class ScannerModel:CaptureProtocol {
}

在应用程序的某一时刻,我想在一个变量上加载一个或另一个

var model = preferences.digitizer == .camera ? cameraModel : scannerModel

有没有办法做到这一点,甚至使用 if

定义协议数据类型

var model: CaptureProtocol = preferences.digitizer == .camera ? cameraModel : scannerModel

或使用计算 属性

var model: CaptureProtocol { preferences.digitizer == .camera ? cameraModel : scannerModel }

注意:您只能从模型变量访问协议属性。