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

调用时缺少参数标签‘arg1:arg2:’,该如何解决?

解决Swift中「Missing argument labels 'arg1:arg2:' in call」错误的方法

嘿,这个错误在Swift开发里真的是高频选手!本质原因很简单:你调用函数的时候没按照它定义的要求写上参数标签,Swift对参数标签的规范性要求可不低,不管是你自己写的自定义函数,还是系统提供的API,都得遵守规则。

下面给你一步步拆解解决思路:

1. 先搞懂函数的参数标签规则

Swift里的函数参数默认是需要写标签的,除非定义函数时用_标记了某个参数,表示可以省略标签。举个直观的例子:

  • 假如你定义了这样一个函数:

    func calculateTotal(price: Double, quantity: Int) -> Double {
        return price * Double(quantity)
    }
    

    这里的price:和quantity:就是必须写的参数标签,直接写calculateTotal(19.99, 3)肯定会报错,必须写成calculateTotal(price: 19.99, quantity: 3)才行。

  • 如果函数定义时加了_,比如:

    func calculateTotal(_ price: Double, _ quantity: Int) -> Double {
        return price * Double(quantity)
    }
    

    这时候调用calculateTotal(19.99, 3)就完全没问题,因为_告诉Swift这个参数可以省略标签。

2. 检查系统API的调用格式

如果你调用的是系统自带的API(比如UIKit、Foundation里的方法),一定要严格按照它的参数标签来写。比如创建UIAlertController:

// 正确写法,每个参数标签都不能少
let alert = UIAlertController(title: "提示", message: "操作成功", preferredStyle: .alert)

要是你写成UIAlertController("提示", "操作成功", .alert),就会立刻弹出你遇到的那个错误——因为系统定义这个方法时要求必须写title:、message:、preferredStyle:这些标签。

3. 利用Xcode的快速修复功能

Xcode其实已经帮你准备好了偷懒的办法!当代码报错时,把光标移到报错的函数调用上,你会看到右侧出现一个黄色的小灯泡,或者直接按下Cmd + Shift + M打开错误面板,点击错误旁边的「Fix」按钮,Xcode会自动帮你补全缺失的参数标签,省心又准确。

错误 vs 正确代码对比

// 自定义函数示例
func sendMessage(to recipient: String, content: String) {
    print("Send to \(recipient): \(content)")
}

// ❌ 错误调用:缺少参数标签
sendMessage("Bob", "Hey there!") // 触发Missing argument labels 'to:content:' in call

// ✅ 正确调用:加上参数标签
sendMessage(to: "Bob", content: "Hey there!")

内容的提问来源于stack exchange,提问作者Nick

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:54:53