2017-09-19 56 views
-1

我有2種類型,第一種是Car,屬性爲feature,第二種類型爲Feature陣列在追加後爲零

我有一個財產cars: [Car],當我追加新車,它返回nil

我在下面的代碼片段創建了一個示例:

class Car { 
    let make: String 
    var features: Feature? 
    let id: String 

    init(make: String, features: Feature?, id: String) { 
     self.make = make 
     self.features = features 
     self.id = id 
    } 
} 

class Feature { 
    let convertible: String 

    init(convertible: String) { 
     self.convertible = convertible 
    } 

} 

var cars: [Car]? 
var feature: Feature? 

let featureElement = Feature(convertible: "yes") 
feature = featureElement 

let car = Car(make: "SomeMaked", features: feature, id: "ID") 

cars?.append(car) 

print(cars) 

我的問題是:不應陣列增加appening它後其計數?我錯過了什麼?

請注意,此代碼僅僅是示例,所以忽略拼寫錯誤和編碼約定。

+0

爲什麼被命名爲'features'參數和'features'財產'features',而不是'feature'?只有在可以傳遞或存儲多個值時才使用複數形式。 – rmaddy

+0

@rmaddy **請注意,這段代碼僅僅是示例,所以請忽略拼寫錯誤和編碼約定。** – MEnnabah

+1

如果您需要代碼幫助,您需要發佈實際代碼來解決問題。否則,你會浪費人們的時間來指出可能存在或可能不存在的問題。 – rmaddy

回答

2

你還沒有初始化你的數組。

替換您var cars: [Car]?var cars: [Car]? = []

+4

爲什麼選擇它?只要做:'var cards = [Car]()' – rmaddy

+1

@rmaddy我想提出這個建議,但是如果OP創建它不是可選的,OP就不會知道這個警告。現在希望下一次他們遇到這樣的問題時,他們將能夠進行調試。 :) –

+0

@rmaddy OP有一個可選項。你怎麼能知道在代碼執行過程中'cars'不能'nil'? –