2017-03-31 83 views
0

我该如何做到这一点? (错误:自己的初始值中使用变量):Swift getter +数组初始化

private var cars = [Car]() { 
    get { return cars } 
} 

...适用于:

private var connection:Bool! { 
    get { return connection } 
} 
+3

'private var cars = [汽车]()' –

+1

为什么你声明你的Bool隐式解包可选? –

+0

@LeoDabus'connected' /'也许连接了'/'没有连接;-) – vadian

回答

0

你的变量

cars 

是计算性能。这就是说,它不存储任何价值。对于你的例子,你将需要创建一个变量。免得把它称为

private var localCars = [Car]() 

这个变量是将存储所有你需要的值,然后你可以使用计算的属性,让你从这样的汽车需要的所有信息的人。

private var cars:Cars! { 
    get { return localCars } 
} 

您也可以使用集的计算PROPERT的值存储localCars

private var cars:Cars! { 
    get { return localCars } 
    set { localCars = newValue } 
} 

如果你想学什么的计算机属性检查这个page。它解释得非常好。

+0

为什么选择Cars如果你已经在声明中初始化你的数组呢?顺便说一下,当你没有setter时,你总是可以省略get关键字。最后一个机器人不仅仅是为什么一个计算的财产总是会有与原始财产相同的价值 –

+0

你绝对不应该在99%的情况下使用IUO,这绝对不是其中之一 –

+0

该op并不需要计算属性,但他因为我只是想给他一个可能的解决方案,它不是理想的,但就像你说的那样没有那么清楚 –