有没有办法在Swift中获得_stable_通用类名?

有没有办法在Swift中获得_stable_通用类名?,第1张

概述在 Swift中获得一个类的名称很容易: import Foundationclass Gen<T> { init() { }}func printName(obj: AnyObject) { dump(NSStringFromClass(obj.dynamicType))}let a: Gen<String> = Gen()let b: Gen<Int> = G 在 Swift中获得一个类的名称很容易:
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的类的数量很高.
>可能有多个通用类,但不是很多.

从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))>"    }}
总结

以上是内存溢出为你收集整理的有没有办法在Swift中获得_stable_通用类名?全部内容,希望文章能够帮你解决有没有办法在Swift中获得_stable_通用类名?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1040093.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存