转换字符串!到String

时间:2015-03-12 14:04:44

标签: swift

我有一个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()

1 个答案:

答案 0 :(得分:1)

问题在于我使用

var employeeManager: EmployeeManager = EmployeeManager()

使用Singleton模式,上面确实应该表现得像,解决了这个问题。