我有一个Swift应用程序,其视图包含文本字段和按钮。单击该按钮时,它将调用以下方法。
@IBAction func AddClick(sender: AnyObject) {
employeeManager.AddFirstName(firstName.text)
}
我不确定为什么我一直收到以下错误:
Cannot invoke 'AddFirstName' with an argument list of type '(String!)'
是不是因为我无法将String!
类型隐式转换为String
?
AddClick定义:
var employeeManager: EmployeeManager = EmployeeManager()
class EmployeeManager {
func AddFirstName(firstName: String){}
即使我将代码更改为
func AddFirstName(firstName: String!) {}
它仍然不起作用。
最好的方法是什么?
- 编辑 -
我看到了问题。它与EmployeeManager类中的以下行有关:
var employeeManager: EmployeeManager = EmployeeManager()
如果我在AddClick中执行此操作,则可以:
@IBAction func AddClick(sender: AnyObject) {
var e = EmployeeManager()
e.AddFirstName(firstName.text)
}
此行旨在表现为单例并提供对EmployeeManager类的应用程序范围的访问。我做错了吗?
var employeeManager: EmployeeManager = EmployeeManager()
答案 0 :(得分:1)
问题在于我使用
var employeeManager: EmployeeManager = EmployeeManager()
使用Singleton模式,上面确实应该表现得像,解决了这个问题。