我似乎在使用[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]()
这是我误解的吗?在我喝咖啡之前,但我已经查看了发布说明,我认为你应该能够引用这样的嵌套类,还是beta 7中的一个bug?
这是一个很好的变通方法:
var foobar: [Wrapper.InsideClass] = []
这看起来肯定是编译器中的一个错误,尤其是当允许实例化嵌套类的空数组时;它根本不适用于initializer语法。
我要养一只虫子。同时,对于遇到此问题的任何人,您都可以通过使用带有空数组和变量指定类的赋值语法来解决此问题,而不是使用构造函数语法:
var foobar: [Wrapper.InsideClass] = []
另一种方法是使用Array<T>()
构造函数。
let arrayOfNestedClass = Array<Wrapper.InsideClass>()