我想知道如何遍历不同类型的对象数组。该数组如下所示:
var messages: [Any] = [SentMessage(sent_text: "Halla", date_sent: "24.des", isSent: true, sending: false), RecievedMessage(profile_image: UIImage(named: "baseline_account_box_black_18pt")!, recieved_text: "Hei hva skjer?", date_recieved: "25.des", isRecieved: true)]
我尝试像这样转换迭代器:
for i in messages{
guard let received = ReceivedMessage(i) else{
return
}
}
ReceivedMessages和SentMessages都是结构体,如果需要看更多代码,就问吧。
使用可选绑定:
guard let received = i as? ReceivedMessage
不是声明messages
as [Any]
,而是创建ReceivedMessage
并SentMessage
采用通用协议,然后messages
将是采用该协议的对象数组:
protocol Message {
}
struct SentMessage: Message {
}
struct ReceivedMessage: Message {
}
var messages: [Message]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句