无法将“字符串”类型的值转换为预期的参数类型
Posted
技术标签:
【中文标题】无法将“字符串”类型的值转换为预期的参数类型【英文标题】: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。 【参考方案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
说明符。
【讨论】:
以上是关于无法将“字符串”类型的值转换为预期的参数类型的主要内容,如果未能解决你的问题,请参考以下文章