Swift中如何将自定义类对象添加到数组?解决append方法调用不匹配报错
解决Swift中"No exact matches in call to instance method 'append'"报错的问题
咱们先来理清报错的核心原因:你现在调用friendsList.append("John", "Doe", 20)的时候,是直接把三个零散的参数扔给了append方法,但friendsList是[Friend]类型的数组——它只接受Friend类的实例作为append的参数,根本不认识这三个单独的字符串和数字呀!
那正确的做法其实很简单,分两步走:
- 先通过
Friend的初始化方法,创建出一个个Friend类型的对象实例; - 再把这些实例逐个添加到
friendsList数组里。
完整的修正代码示例
import UIKit class ViewController: UIViewController { var friendsList: [Friend] = [] override func viewDidLoad() { super.viewDidLoad() // 实例化5个Friend对象并添加到数组 let friend1 = Friend(firstname: "John", lastname: "Doe", age: 20) friendsList.append(friend1) let friend2 = Friend(firstname: "Jane", lastname: "Smith", age: 22) friendsList.append(friend2) let friend3 = Friend(firstname: "Mike", lastname: "Brown", age: 19) friendsList.append(friend3) let friend4 = Friend(firstname: "Lisa", lastname: "Miller", age: 21) friendsList.append(friend4) let friend5 = Friend(firstname: "Tom", lastname: "Wilson", age: 23) friendsList.append(friend5) } }
更简洁的写法
如果你不想单独声明每个friend变量,也可以直接在append方法里创建实例,代码会更紧凑:
override func viewDidLoad() { super.viewDidLoad() friendsList.append(Friend(firstname: "John", lastname: "Doe", age: 20)) friendsList.append(Friend(firstname: "Jane", lastname: "Smith", age: 22)) friendsList.append(Friend(firstname: "Mike", lastname: "Brown", age: 19)) friendsList.append(Friend(firstname: "Lisa", lastname: "Miller", age: 21)) friendsList.append(Friend(firstname: "Tom", lastname: "Wilson", age: 23)) }
这样写之后,Swift就不会再报错啦,因为你现在传给append的是一个个符合数组类型要求的Friend实例~
内容的提问来源于stack exchange,提问作者Shuran Gong
相关产品推荐
相关产品推荐

