You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift中如何将自定义类对象添加到数组?解决append方法调用不匹配报错

解决Swift中"No exact matches in call to instance method 'append'"报错的问题

咱们先来理清报错的核心原因:你现在调用friendsList.append("John", "Doe", 20)的时候,是直接把三个零散的参数扔给了append方法,但friendsList是[Friend]类型的数组——它只接受Friend类的实例作为append的参数,根本不认识这三个单独的字符串和数字呀!

那正确的做法其实很简单,分两步走:

  1. 先通过Friend的初始化方法,创建出一个个Friend类型的对象实例;
  2. 再把这些实例逐个添加到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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.01 03:02:41