【发布时间】:2019-10-02 09:52:34
【问题描述】:
当我们像这样进行可选链接时
var myVar: Int?
if let unwrapped = myVar {
}
编译器将unwrapped 视为Int
我有一系列符合特定协议的类。考虑示例:
import Foundation
protocol SomeProtocol: class {}
class A {}
extension A: SomeProtocol {}
class B {}
extension B: SomeProtocol {}
class C {}
extension C: SomeProtocol {}
let arr: [SomeProtocol] = [A(), B(), C()]
arr.forEach{ object in
if object is A {
// object is treated like SomeProtocol, not like A class
}
}
我可以做到(object as! A),但这看起来很难看。如何找到将协议项智能转换为我的班级变量的方法?
【问题讨论】:
-
我想这是唯一有效的方法
标签: swift