我在viewController var category : QCategoryy?
中有这个变量
我决定把它变成一个数组,所以我创建了这个:var categories: [QCategoryy?]? = []
但之后我得到了这样的所有错误
“类型的值'[QCategoryy?]'没有成员'名称'”
在这一行self.title = categories?.name
和其他类似的行。
为什么我会收到这些错误,我该如何解决?
首先将var转换为数组,一切运行良好。 这是QCategoryy的类
struct QCategoryy {
var name:String
var isSelected = false
init(name:String) {
self.name = name
}
}
extension QCategoryy: ExpressibleByStringLiteral {
init(stringLiteral value: String) {
self.name = value
}
init(unicodeScalarLiteral value: String) {
self.init(name: value)
}
init(extendedGraphemeClusterLiteral value: String) {
self.init(name: value)
}
}
答案 0 :(得分:1)
此处类别是一个数组。所以做这样的事情
self.title = categories?[0]?.name
答案 1 :(得分:1)
很简单,您已将该变量转换为数组。所以,首先你必须给出数组的索引来调用特定索引处的object的值。 如下所示
for index in 0..<10 {
if let category = categories[index] {
self.title = category.name
}
}
如果categories [0]为nil,条件绑定将阻止应用程序崩溃。
<强>更新强>
防止数组索引超出循环范围。您可以使用以下示例。
for category in categories {
title = category.name
}
答案 2 :(得分:0)
类别。因此,您必须参考其中您指定的名称的某个对象。
更像是,类别?[索引]?名称
答案 3 :(得分:0)
或者您可以使用forEach:
categories?.forEach{ value in
self.title = value?.name
}