swift - 将两个类分配给同一个变量,这甚至可能吗?
问题描述
我有两个属于同一协议的类。
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 }
注意:您只能从模型 var 访问协议属性。
推荐阅读
- sql - 使用时间戳过滤器更新
- jquery - 隐藏选择
- javascript - 在 Typescript 声明文件中,如何指定一个类扩展另一个类的实例?
- php - 检查帖子元值是否存在的最佳方法是什么?
- python - 如何从 Python Flask 连接到 SQL Server?
- angular - 延迟加载导致 ERROR 错误:未捕获(在承诺中):错误:无法匹配任何路由。网址段:
- r - 小时间序列分析
- php - PHP CodeSniffer 错误:phpcs 报告包含无效的 json
- if-statement - 自动计算的数组公式
- django - django:“LoginForm”对象没有属性“cleaned_data”