快速泛型的分割错误

时间:2014-09-11 11:48:05

标签: generics swift protocols

这让我感到困惑,我很难找到解决方法让它发挥作用,可能是其他人遇到过这个问题?

Welcome to Swift!  Type :help for assistance.
  1> protocol Type {}
  2> class Expression<T: Type> {}
  3> var exp: Expression<Type>? = nil
exp: Expression<Type>? = nil
  4> class A { 
  5.     var exp: Expression<Type>? = nil 
  6. }    
Segmentation fault: 11

不知何故,第三行仅在repl中起作用,但在操场上不起作用

2 个答案:

答案 0 :(得分:2)

我有同样的问题。 我确实让它发挥作用......但需要付出代价。

您必须通过预先添加@objc

使协议成为客观的协议

试试这段代码:

@objc protocol Type {}
class Expression<T: Type> {}
var exp: Expression<Type>? = nil

class A {
    var exp: Expression<Type>? = nil
}

答案 1 :(得分:0)

Xcode 6.1 GM 2修复了很多编译器崩溃。

如果您必须依赖较旧的Xcode版本,那么除了更改代码的结构之外别无他法,直到它成功编译而不会崩溃。