【问题标题】:Cannot convert value of type 'String' to expected argument type无法将“字符串”类型的值转换为预期的参数类型
【发布时间】:2016-07-01 02:34:05
【问题描述】:

我在我的项目中创建了单独的 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!))

无法将“字符串”类型的值转换为预期的参数类型 '配置'

如果我像下面那样做,会得到不同的错误。

Config.isValidEmail(txtEmail.text)

无法转换“字符串”类型的值?到预期的参数类型 '配置'

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

【问题讨论】:

  • Jeffery 对静态的看法是正确的,但是由于描述您尝试的内容的行无法编译,并且似乎应该说明没有这种方法,我建议您应该仔细发布有关您正在尝试的代码的更多信息使用 isValidEmail。

标签: swift swift2


【解决方案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 说明符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-30
    • 1970-01-01
    • 2017-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-03
    • 2021-05-29
    相关资源
    最近更新 更多