无法将“String”类型的值转换为预期的参数类型

时间:2016-07-01 02:34:05

标签: swift swift2

我在我的项目中创建了单独的swift类,以收集所有必需的信息和验证,如下所示:

Config.swift

public class Config: NSObject {    
    func isValidEmail(testStr:String) -> Bool {
        let emailRegEx = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"
        let range = testStr.rangeOfString(emailRegEx, options:.RegularExpressionSearch)
        let result = range != nil ? true : false
        return result
    }
}

但问题是当我在另一个类中调用该函数时,我遇到了以下错误:

if (Config.isValidEmail(txtEmail.text!))
  

无法将'String'类型的值转换为预期的参数类型   '配置'

如果我确实如此,那就得到了不同的错误。

Config.isValidEmail(txtEmail.text)
  

无法转换'String'类型的值?预期的参数类型   '配置'

我不知道为什么。请帮我解决。

1 个答案:

答案 0 :(得分:1)

您关注isValidEmail(_:)作为一种类方法,但它是一种实例方法。

我认为你想让isValidEmail(_:)成为一种类方法。

public class Config: NSObject {
    static func isValidEmail(testStr:String) -> Bool {
        let emailRegEx = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"
        let range = testStr.rangeOfString(emailRegEx, options:.RegularExpressionSearch)
        let result = range != nil ? true : false
        return result
    }
}

注意:static说明符。