Arrays 数组追加后为零
我有两种类型,第一种是Arrays 数组追加后为零,arrays,swift,Arrays,Swift,我有两种类型,第一种是汽车,具有属性功能,第二种是功能 我有一个属性cars:[Car],当我将新车附加到它时,它返回nil 我在下面的代码片段中创建了一个示例: class Car { let make: String var features: Feature? let id: String init(make: String, features: Feature?, id: String) { self.make = make
汽车
,具有属性功能
,第二种是功能
我有一个属性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)
我的问题是:数组出现后不应该增加计数吗?我错过了什么
请注意,此代码只是示例,因此请忽略键入错误和编码约定。您尚未初始化数组
用
var cars:[Car]?
替换您的var cars:[Car]?=[]
您尚未初始化阵列
用
var cars:[Car]?
替换您的var cars:[Car]?=[]
为什么要将其设置为可选?只要做:var cards=[Car]()
@rmaddy我想建议,但是如果OP创建了它,而不是可选的,OP就不会发现这个警告。现在,希望下次他们遇到这样的问题时,能够调试它。:)@rmaddy OP有一个可选选项。你怎么知道在执行代码时,cars
不能nil
?@AminNegm Awad给定发布的代码,没有明显的理由将数组设为可选。@rmaddy这是真的。但这需要发布最少的代码,而大多数用户发布的代码至少减少了。所以这个假设类似于勇敢。为什么要让它成为可选的呢?只要做:var cards=[Car]()
@rmaddy我想建议,但是如果OP创建了它,而不是可选的,OP就不会发现这个警告。现在,希望下次他们遇到这样的问题时,能够调试它。:)@rmaddy OP有一个可选选项。你怎么知道在执行代码时,cars
不能nil
?@AminNegm Awad给定发布的代码,没有明显的理由将数组设为可选。@rmaddy这是真的。但这需要发布最少的代码,而大多数用户发布的代码至少减少了。所以这个假设类似于勇敢。为什么features
参数和features
属性被命名为features
,而不是feature
?仅当您可以传递或存储多个值时才使用复数。@rmaddy请注意,此代码只是示例,因此请忽略打字错误和编码惯例。如果您需要代码方面的帮助,您需要发布导致问题的实际代码。否则你会浪费人们的时间指出可能存在或可能不存在的问题。真的吗?我不知道打破代码惯例会在代码中产生错误。但打字错误和其他“假”代码会浪费人们的时间。最好张贴真实、真实、复制和粘贴的代码,清楚地说明您的问题。为什么将功能
参数和功能
属性命名为功能
,而不是功能
?仅当您可以传递或存储多个值时才使用复数。@rmaddy请注意,此代码只是示例,因此请忽略打字错误和编码惯例。如果您需要代码方面的帮助,您需要发布导致问题的实际代码。否则你会浪费人们的时间指出可能存在或可能不存在的问题。真的吗?我不知道打破代码惯例会在代码中产生错误。但打字错误和其他“假”代码会浪费人们的时间。最好张贴真实、真实、复制和粘贴的代码,清楚地演示您的问题。