import Foundationclass 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的类的数量很高.
>可能有多个通用类,但不是很多.
好消息!从6.3开始你可以做:
toString(Gen<Int>())
那会打印:Gen< Swift.Int>
老答案:
如果范围可以减少到T:AnyObject,那么你可以实现它如下:
class Gen<T: AnyObject> { var classname: String { return "Gen<\(NsstringFromClass(T.self))>" }}总结
以上是内存溢出为你收集整理的有没有办法在Swift中获得_stable_通用类名?全部内容,希望文章能够帮你解决有没有办法在Swift中获得_stable_通用类名?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)