在EXC_BAD_ACCESS中使用泛型的dynamicType结果

时间:2015-01-05 15:37:57

标签: exception generics swift

以下代码在iOS模拟器中运行正常,但会在设备上导致EXC_BAD_ACCESS异常。

这是Swift中的一个错误,还是我只是在做一些奇怪的事情?

什么行不通:

class Foo: NSObject {
    class var name: String {
        return "A foo"
    }
}

struct FooWrapper<T: Foo> {
    var fooName: String

    init(foo: T) {
        fooName = foo.dynamicType.name
    }
}

var foo = Foo()
var fooWrapper = FooWrapper(foo: foo)
println(fooWrapper.fooName)

要使其有效,请执行以下操作:

  • 使用(foo as Foo).dynamicType.name
  • 或者,删除NSObject作为Foo的超类

0 个答案:

没有答案