额外的参数错误

时间:2016-02-11 13:42:47

标签: ios swift function parameter-passing

我正在尝试创建一个简单的ios应用程序,当我传递完全相同的值时,我一直收到错误为“调用中的额外参数”。

TaskManager.swift

struct task {
    var name = "Name"
    var desc = "Description"
}

var tasks = [task]()

class TaskManager: NSObject {

    func addTask(name: String, desc: String) {
        tasks.append(task(name: name, desc: desc))
    }

}

调用函数位于另一个swift文件中,

class SecondViewController: UIViewController, UITextFieldDelegate {

    @IBOutlet weak var txtTask: UITextField!
    @IBOutlet weak var txtDesc: UITextField!
    @IBAction func btnAddTask(sender: UIButton) {
        if (txtTask.text != "") {
            TaskManager.addTask(txtTask.text, txtDesc.text)
            txtTask.text = nil
            txtDesc.text = nil
        }
    }
}

我发送完全相同的论点。我做错了什么?

2 个答案:

答案 0 :(得分:2)

现在它期待1个参数,这是一个初始化的任务管理器。您没有初始化任务管理器。如果你想这样做(不是初始化),请制作方法static

static func addTask(etc..

然后你可以这样称呼它:

TaskManager.addTask(2 args...

或者,保持它的原理并初始化TaskManager:

let manager = TaskManager()
manager.addTask(etc...

答案 1 :(得分:0)

struct Task {
    var name: String
    var desc: String
}

var tasks: [Task] = []

class TaskManager: NSObject {

    static func addTask(name: String, desc: String) {
        tasks += [task(name: name, desc: desc)]
    }   
}

TaskManager.addTask("someName", desc: "shouldn't this be a bool?")

print(tasks) // [task(name: "someName", desc: "shouldn\'t this be a bool?")]

static前面添加addTask(_:)即可。