Ale*_*lex 11 arrays inheritance swift
我是斯威夫特的新人.我有一个基类:
class foo{}
Run Code Online (Sandbox Code Playgroud)
我想实现一个foo集合类:
class foos: Array<foo>{}
Run Code Online (Sandbox Code Playgroud)
但编译器抱怨:
继承自非协议,非类型的'Array'
我尝试过其他语法(例如[foo]和NSMutableArray<foo>),但没有一个通过编译器检查.
这应该很简单,但我整天用Google搜索,无法弄明白.有谁知道它是否可能,如果是,是正确的语法?
Jos*_*osh 15
Swift的Array类型是一个结构,在Swift中,基类必须是实际的类(即),class Foo而不是结构.
因此Array,不幸的是,你不能通过继承做你想做的事.但是,您可以将数组存储为类中的字段并将方法转发给它,可能实现您要支持的任何协议等等.
在Swift中,Array是一个结构,而不是一个类.要拥有一个数组子类的类,您需要使用NSArray,它的Objective-C对应物.
例如,
class Foo: NSArray{}
Run Code Online (Sandbox Code Playgroud)