swift - 通用类型参数作为变量

标签 swift generics parameters

有没有办法动态地将类型参数传递给通用的 swift 类?以下仅出于说明目的,来自一个给出错误的 Playground :使用未声明的类型“按钮”

import Cocoa

class PrintNameOfClass<T: NSObject> {
    func printType() {
        print(type(of: T.self))
    }
}

let button = NSButton()
let test = PrintNameOfClass<button>()
test.printType()

最佳答案

在这种情况下,更合理的做法是使函数通用而不是类能够传递实例 按钮

class PrintNameOfClass {
    func printNameOfClass<T : NSObject>(of : T) {
        print(type(of: T.self))
    }
}

let button = NSButton()
let test = PrintNameOfClass()
test.printNameOfClass(of: button)

关于swift - 通用类型参数作为变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57372385/

相关文章:

generics - Kotlin中的Nothing或Any和有什么区别

sql - 参数化 WHERE 子句?

ios - 如何使用 Swift 删除 coredata 中的特定记录?

swift - 接收 Swift 错误 : Cannot convert value of type '([PFObject]?, NSError)? Void' to expected argument type 'PFArrayResultBlock?'

ios - 事件工具包不在日历顶部的多天全天事件

ios - 如何将 MKLocalSearchCompletion 结果提供给 UISearchController

Java 泛型 : Understanding Bounded Wildcards

java - 从抽象类继承泛型类型方法——转换为特定类型

php - mysql_close() 期望参数 1 为资源,给定为空

mysql - mysql数据库中的字段作为函数的参数?