首页 > 解决方案 > 将两个类分配给同一个变量,这甚至可能吗?

问题描述

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

class CameraModel:CaptureProtocol {
}

class ScannerModel:CaptureProtocol {
}

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

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

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

标签: swiftswift5

解决方案


定义协议数据类型

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

或使用计算属性

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

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


推荐阅读