![](/img/trans.png)
[英]Mocking a class with generic parameter function inside Swift
[英]Class as function parameter in Swift
在我的應用程序中,有許多用於不同ViewController的類。 我正在尋找給類名作為函數參數的方法,以便可以在函數中使用它。
例
func myFunc (var1: String, var2 : Int, var3 : myClass) {
var example = myClass();
example.name = var1;
example.age = var2;
}
我在Swift中將符合協議的線程類視為函數參數,但我不明白如何解決該問題。
您可以這樣做,而無需傳遞視圖控制器的實例:
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.