我有
protocol BirdProtocol {
var kukku
}
class Bird : BirdProtocol {
var canFly
}
我的视图控制器抓住了这个
var mypet : BirdProtocol
问题:
我可以打电话给mypet.kukku
我无法致电mypet.canFly
我尝试将Mypet投射为?鸟
但似乎无法正常工作,无论如何将协议转换为类?谢谢
答案 0 :(得分:0)
如前所述,您应该考虑是否需要协议或是否需要向其中添加canFly
。尽管基本的铸造作品仍然可以
if let bird = mypet as? Bird {
print(bird.canFly)
}
答案 1 :(得分:0)
if let newMypet = as? Bird{
print("kukku: ", newMypet.kukku, " CanFly : ", newMypet.canFly)
}
答案 2 :(得分:-1)
您不能将协议强制转换为类类型,因为该类不是protocol的成员。另一方面,您可以强制继承继承协议的类,因为您的类具有该协议一致性。