我正在尝试创建一个简单的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
}
}
}
我发送完全相同的论点。我做错了什么?
答案 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(_:)
即可。