使用Swift中另一个类中的一个类的函数

时间:2014-07-23 21:46:33

标签: ios swift

所以我想说我有一个名为Math的课程

class Math{

    func add(numberOne: Int, numberTwo: Int) -> Int{

        var answer: Int = numberOne + numberTwo
        return answer
    }

在这个课程中,有一个功能允许用户添加两个数字。

我现在有另一个类,它是UIViewController的子类,我想使用Math类的add函数,我该怎么做?

class myViewController: UIViewController{

    //Math.add()???

}

3 个答案:

答案 0 :(得分:20)

如果您希望能够说Math.add(...),则需要使用类方法 - 只需在class之前添加func

class Math{

    class func add(numberOne: Int, numberTwo: Int) -> Int{

        var answer: Int = numberOne + numberTwo
        return answer
    }
}

然后你可以从另一个Swift类中调用它:

Math.add(40, numberTwo: 2)

将其分配给变量i

let i = Math.add(40, numberTwo: 2) // -> 42

答案 1 :(得分:3)

class函数之前使用add关键字使其成为类函数。

您可以使用

class Math{
    class func add(numberOne: Int, numberTwo: Int) -> Int{

        var answer: Int = numberOne + numberTwo
        return answer
    }
}

class myViewController: UIViewController{

    //Math.add()???
    //call it with class `Math`
    var abc = Math.add(2,numberTwo:3)
}


var controller = myViewController()
controller.abc  //prints 5

此代码来自playgound。您可以从任何类调用。

答案 2 :(得分:0)

Swift 4:

class LoginViewController: UIViewController {
//class method
@objc func addPasswordPage(){
  //local method  
  add(asChildViewController: passwordViewController)
    }

func  add(asChildViewController viewController: UIViewController){

    addChildViewController(viewController)
  }
}

class UsernameViewController: UIViewController {

let login = LoginViewController()
override func viewDidLoad() {
    super.viewDidLoad()
   //call login class method
   login.addPasswordPage()

  }
}