2017-03-31 116 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並不需要計算屬性,但他因爲我只是想給他一個可能的解決方案,它不是理想的,但就像你說的那樣沒有那麼清楚 –