为什么我不能实例化一个嵌套类的空数组?

时间:2014-09-05 08:57:45

标签: swift

我似乎在使用[foo]()样式语法实例化嵌套类类型的空数组时出现问题:

// Playground - noun: a place where people can play

class outsideClass {

}

class Wrapper {
    class InsideClass {
    }
}

var foo = [outsideClass]() // Works fine

// Invalid use of '()' to call a value of non-function type '[Wrapper.InsideClass.Type]'
var bar = [Wrapper.InsideClass]() 

这是我误解的事情 - 它在我的咖啡之前,但是我已经检查了发行说明,我认为你应该能够引用像这样的嵌套类 - 或者测试版7中的错误?

这可以解决方法:

var foobar: [Wrapper.InsideClass] = []

2 个答案:

答案 0 :(得分:38)

这肯定看起来像编译器中的一个错误,特别是当你允许实例化一个嵌套类的空数组时就好了;它根本不适用于初始化语法。

我会提出一个错误。与此同时,对于遇到问题的任何人,您可以通过使用带有空数组的赋值语法和变量的指定类来解决它,而不是构造函数语法:

 var foobar: [Wrapper.InsideClass] = []

答案 1 :(得分:1)

另一种方法是使用Array<T>()构造函数。

let arrayOfNestedClass = Array<Wrapper.InsideClass>()