Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 如何参照Swift 4中的结构正确构造类中的函数?_Arrays_Swift_Function_Class_Struct - Fatal编程技术网

Arrays 如何参照Swift 4中的结构正确构造类中的函数?

Arrays 如何参照Swift 4中的结构正确构造类中的函数?,arrays,swift,function,class,struct,Arrays,Swift,Function,Class,Struct,我正在进行Swift 4教程挑战。我使用的是结构、类、数组和函数。我已经正确地创建了结构和类,但是在我的函数中,我应该将联系人附加到联系人数组中。下面是更好理解的代码 这是我的代码,它可以很好地添加名字和电话号码,我可以在操场上看到它。我无法将createContact附加到数组中,并且无法实际打印带有联系人的数组。我知道我必须返回contact,这是有效的,但是当我尝试返回数组的附加时,我收到了一个数组,因为该方法应该返回什么。基本上,我需要帮助将我的联系人添加到联系人数组并能够打印出来 谢谢

我正在进行Swift 4教程挑战。我使用的是结构、类、数组和函数。我已经正确地创建了结构和类,但是在我的函数中,我应该将联系人附加到联系人数组中。下面是更好理解的代码

这是我的代码,它可以很好地添加名字和电话号码,我可以在操场上看到它。我无法将createContact附加到数组中,并且无法实际打印带有联系人的数组。我知道我必须返回contact,这是有效的,但是当我尝试返回数组的附加时,我收到了一个数组,因为该方法应该返回什么。基本上,我需要帮助将我的联系人添加到联系人数组并能够打印出来

谢谢你的帮助。我希望我的解释清楚

struct Contact {
    var name:String
    let phoneNumber:String

    init(name:String, phoneNumber:String) {
        self.name = name
        self.phoneNumber = phoneNumber
    }
}

class ContactsManager {
    var contacts: [Contact] = []

    init(contacts: [Contact] = []) {
        self.contacts = contacts
    }

        func createContact(name: String, phoneNumber : String) -> Contact {
          Contact.init(name: name, phoneNumber: phoneNumber)
            contacts.append(Contact.init(name: name, phoneNumber: phoneNumber))
            return Contact(name: name, phoneNumber: phoneNumber)

        }

}

ContactsManager.init().createContact(name: "Daniel", phoneNumber: "011232342")
ContactsManager.init().contacts

每次执行任何操作时,都会创建一个单独的类/结构实例。通常,对于一个概念“对象”,您应该有一个实例,这意味着您应该只调用init一次:

结构接触{ 变量名称:String 让电话号码:字符串 initname:String,phoneNumber:String{ self.name=名称 self.phoneNumber=电话号码 } } 类ContactsManager{ 变量联系人:[联系人]=[] initcontacts:[联系人]=[]{ self.contacts=联系人 } func createContactname:String,phoneNumber:String->Contact{ 让联系人=联系人姓名:姓名,电话号码:电话号码 联系方式 回接 } } 让管理者=联系人管理者 manager.createContactname:Daniel,电话号码:0112342 经理。联系人
请注意,ContactsManager相当于ContactsManager.init,因此我使用了较短的版本。

多亏了这一点,我完全忘记了如何将其分配给常量,从而使生活更轻松。也不知道ContactsManager和ContactsManager.init是同一个东西。再次感谢!我也想问问。我怎么打印出来?我已尝试printmanager.contacts,但收到一个错误。我要把它分配给一个变量吗?这个错误:_lldb_expr_64。联系人姓名:Daniel,电话号码:0119823843这不是错误,它正在打印您的联系人的数据。他们的名字是丹尼尔,电话号码是0119823843。自定义打印方式取决于上下文,如果您不知道如何在网上找到,则应在另一个问题中询问。祝你好运