为什么函数需要一个包含自身作为参数的类而不是一个定义的字符串?

时间:2017-12-29 09:21:22

标签: ios swift4

我的班级看起来像这样:

class MyNewClass {
   func myNewFunction (paramString : String) -> String {
      var myString = ""

      if paramString.caseInsensitiveCompare("A") == ComparisonResult.orderedSame {
            myString = "The string is A"
        }else{
            myString = "The string is blank"
      }
      return myString
   }
}

这没有问题。但是当我在另一个ViewContoller中使用这个类时,它给了我一个奇怪的错误。

我在另一个myNewFunction

中调用ViewController这样的内容
let myString : String = MyNewClass.myNewFunction("A")

假设我应该插入" A"我在myNewFunction()中定义为paramString MyNewClass,但我收到了这样的警告

  

'字符串'不能转换为“MyNewClass'

我只是不知道为什么我无法解析String作为myNewFunction()的参数。为什么myNewFunction()需要该类包含MyNewClass作为参数?

有人请指导我正确的方向

1 个答案:

答案 0 :(得分:1)

如果您想在不启动MyNewClass实例的情况下调用它,则可以在static之前添加func,例如

class MyNewClass {
  static func myNewFunction (paramString : String) -> String {
      var myString = ""

      if paramString.caseInsensitiveCompare("A") == ComparisonResult.orderedSame {
            myString = "The string is A"
      } else {
            myString = "The string is blank"
      }

      return myString
   }
}

MyNewClass.myNewFunction(paramString: "foo")

在视觉上,您可以创建MyNewClass的实例。

let myInstance = MyNewClass()
let myString = myInstance.myNewFunction(paramString: "foo")