我有两个属于同一协议的类。
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 }
注意:您只能从模型变量中访问协议属性。