定义一个符合协议的变量,并从Swift中的类继承

时间:2015-03-26 18:24:14

标签: swift casting

在Objective-C中,我可以执行以下操作:

SomeClass<SomeProtocol> *foo = nil;

这告诉编译器foo isa SomeClass,并且符合协议SomeProtocol

我如何在Swift中做同样的事情?

当我尝试执行以下操作时:

@objc
protocol SomeProtocol {}

class SomeClass: NSObject {}

class ChildClass: SomeClass, SomeProtocol {}

class FooBar {
    init() {
        var foo: SomeClass<SomeProtocol>

    }
}

......它给出了错误:

error: cannot specialize non-generic type 'SomeClass'
        var foo: SomeClass<SomeProtocol>
                 ^

这是因为天使括号(<>)是为泛型而不是协议保留的。

0 个答案:

没有答案