Ios 如何强制将结构从超级类型转换为新类型?
从下面的代码中,我创建了struct类型的实例 问题是我想创建一个数组,它包含任何带有Ios 如何强制将结构从超级类型转换为新类型?,ios,swift,Ios,Swift,从下面的代码中,我创建了struct类型的实例 问题是我想创建一个数组,它包含任何带有supernoob协议的结构 但是我不知道如何将它从祖先类型(supernoob)转换为noob类型,如果不转换,我无法访问(var-pro) 在使用类时,我可以很容易地转换它,但我不知道如何使用struct import UIKit protocol supernoob{ func superdoNoob() var supernub:String { get set } } struct noo
supernoob
协议的结构
但是我不知道如何将它从祖先类型(supernoob
)转换为noob
类型,如果不转换,我无法访问(var-pro
)
在使用类时,我可以很容易地转换它,但我不知道如何使用struct
import UIKit
protocol supernoob{
func superdoNoob()
var supernub:String { get set }
}
struct noob: supernoob{
var supernub: String
func superdoNoob() {
}
var pro:String
}
struct spaceShip{
var mynoob : supernoob
}
let flyAlien = spaceShip(mynoob: noob(supernub: "choopa", pro: "PO"))
let ufo = spaceShip(mynoob: noob(supernub: "choopa", pro: "PO"))
let array = [flyAlien,ufo]
ufo.mynoob as? noob
只要通过执行
if let…
for item in array {
if let noob = item.mynoob as? noob {
print(noob.pro)
}
}
只要通过执行
if let…
for item in array {
if let noob = item.mynoob as? noob {
print(noob.pro)
}
}
让noob=ufo.mynoobas的问题在哪里?noob,
let pro=noob?.pro
。问题在哪里?noob,让pro=noob?.pro
。