我无法访问VC1中提供的Struct数据,在VC2中我缺少什么?
我已经尝试了很多东西,唯一无法访问数据的方法是通过在VC2中声明变量,例如:var contactsOfUser: ContactStruct?
,但是这在VC1中出现了错误,因为我准备作假说>
无法将类型“ [ContactStruct]”的值分配给类型“ ContactStruct?”
无论如何,这是我的代码,也许我在某个地方搞砸了:
VC1:
//here i use performSegue:
DispatchQueue.main.async { [weak self] in
self?.performSegue(withIdentifier: "inviteFriends", sender: nil)
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "inviteFriends"{
let dest = segue.destination as! LetsInviteFriendsViewController
dest.contactsOfUser = self.contacts
}
}
VC 2:
var contactsOfUser: ContactStruct?
@IBOutlet weak var tableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
print(contactsOfUser?.givenName)
答案 0 :(得分:3)
错误消息很清楚。您正在尝试从VC1传递一个ContactStruct
数组,并将该数组分配给contactsOfUser
属性,您将该属性声明为单个ContactStruct
。只需将其更改为数组即可。
VC2:var contactsOfUser = [ContactStruct]()