如何正确使用结构的准备工作?

时间:2019-02-06 16:16:02

标签: ios swift segue

我无法访问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)

1 个答案:

答案 0 :(得分:3)

错误消息很清楚。您正在尝试从VC1传递一个ContactStruct数组,并将该数组分配给contactsOfUser属性,您将该属性声明为单个ContactStruct。只需将其更改为数组即可。

VC2:var contactsOfUser = [ContactStruct]()