有没有办法在Swift中获得_stable_通用类名?
发布时间:2020-12-14 05:36:44 所属栏目:百科 来源:网络整理
导读:在 Swift中获得一个类的名称很容易: import Foundationclass GenT { init() { }}func printName(obj: AnyObject) { dump(NSStringFromClass(obj.dynamicType))}let a: GenString = Gen()let b: GenInt = Gen()printName(a)printName(b) 但是,如果您运行上述
在
Swift中获得一个类的名称很容易:
import Foundation class Gen<T> { init() { } } func printName(obj: AnyObject) { dump(NSStringFromClass(obj.dynamicType)) } let a: Gen<String> = Gen() let b: Gen<Int> = Gen() printName(a) printName(b) 但是,如果您运行上述代码两次,则不会产生相同的结果. 那么有没有办法以稳定的方式实现printName(获取专门的泛型类的名字)?那么代码的多次运行会为同一个类打印相同的字符串? 我使用最新的Xcode测试版. 一些额外要求: >将传递给printName的类的数量很高.
从Xcode 6.3 beta 1开始的新功能
好消息!从6.3开始你可以做: toString(Gen<Int>()) 那会打印:Gen< Swift.Int> 老答案: 如果范围可以减少到T:AnyObject,那么你可以实现它如下: class Gen<T: AnyObject> { var className: String { return "Gen<(NSStringFromClass(T.self))>" } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 浅谈Linux环境下并发编程中C语言fork()函数的使用
- 6.5 Swift中的闭包(Closure)详解 [Swift原创教程]
- swift iOS – 快速滚动后混合的UICollectionView图像
- ios – 我如何以编程方式在Swift中的图像上添加渐变层?
- 如何利用FLASH 10的GPU加速功能
- 在Swift中垂直居中的IndicatorImage
- ruby-on-rails – rake因“虚拟计时器已过期”而失败
- UINavigationController视图控制器切换(二)
- flex ItemRenderer (flex实现QQ通信界面)
- 如何在正则表达式中将单个S或E字符串中的字符串拆分后跟Jav