簡體   English   中英

在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM