Arrays 如何参照Swift 4中的结构正确构造类中的函数?
我正在进行Swift 4教程挑战。我使用的是结构、类、数组和函数。我已经正确地创建了结构和类,但是在我的函数中,我应该将联系人附加到联系人数组中。下面是更好理解的代码 这是我的代码,它可以很好地添加名字和电话号码,我可以在操场上看到它。我无法将createContact附加到数组中,并且无法实际打印带有联系人的数组。我知道我必须返回contact,这是有效的,但是当我尝试返回数组的附加时,我收到了一个数组,因为该方法应该返回什么。基本上,我需要帮助将我的联系人添加到联系人数组并能够打印出来 谢谢你的帮助。我希望我的解释清楚Arrays 如何参照Swift 4中的结构正确构造类中的函数?,arrays,swift,function,class,struct,Arrays,Swift,Function,Class,Struct,我正在进行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。自定义打印方式取决于上下文,如果您不知道如何在网上找到,则应在另一个问题中询问。祝你好运