[英]Class as function parameter in Swift
In my app there are many classes for different ViewControllers. 在我的应用程序中,有许多用于不同ViewController的类。 I am searching way to give class name as function parameter so i can use it in function. 我正在寻找给类名作为函数参数的方法,以便可以在函数中使用它。
Example 例
func myFunc (var1: String, var2 : Int, var3 : myClass) {
var example = myClass();
example.name = var1;
example.age = var2;
}
i saw this thread Class conforming to protocol as function parameter in Swift but i didn't understand how can i solve my problem with it. 我在Swift中将符合协议的线程类视为函数参数,但我不明白如何解决该问题。
You can do this without the need to pass an instance of your view controller: 您可以这样做,而无需传递视图控制器的实例:
import Cocoa
protocol MyViewControllerType : class {
var name : String { get set }
var age : Int { get set }
}
class FirstViewController : NSViewController, MyViewControllerType {
var name = ""
var age = 0
}
class SecondViewController : NSViewController, MyViewControllerType {
var name = ""
var age = 0
}
func myFunc<VC : NSViewController where VC : MyViewControllerType>(viewControllerType: VC.Type, name: String, age: Int) -> VC {
let viewController = VC()
viewController.name = name
viewController.age = age
return viewController
}
let first = myFunc(FirstViewController.self, name: "Bob", age: 20)
let second = myFunc(SecondViewController.self, name: "Paul", age: 30)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.