为什么第二行不起作用?
twoDWeeksArray.append(ExpandableWeeks(isExpanded:true,date:([weeksArray [0]])))
twoDWeeksArray [0] .append(ExpandableWeeks(isExpanded:true,date:([weeksArray [x]])))
它给了我这个错误:
“ ExpandableWeeks”类型的值没有成员“追加”
im尝试附加按年份分组的二维日期数组
struct ExpandableWeeks {
var isExpanded: Bool = true
var dates: [Date]
}
这是我的功能:
func getTwoDWeeksArray() {
twoDWeeksArray.removeAll()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy"
var firstYear = dateFormatter.string(from: dailyEntry[0].date!)
var tempEntry = ""
var z = 0
twoDWeeksArray.append(ExpandableWeeks(dates: ([weeksArray[0]])))
if weeksArray.count == 1 {
return
}
for x in 1...weeksArray.count-1 {
tempEntry = dateFormatter.string(from: weeksArray[x])
if tempEntry == firstYear {
twoDWeeksArray[z].append(ExpandableWeeks( dates: ([weeksArray[x]])))
} else {
firstYear = tempEntry
twoDWeeksArray.append(ExpandableWeeks(isExpanded: true, dates: ([weeksArray[x]])))
z = z + 1
}
}
}
答案 0 :(得分:1)
您还没有显示对twoDWeeksArray的声明,所以我只能假设它没有声明为二维数组。
这是一个使用您的结构的有效示例,尽管我认为也许定义类型的方式不必要地复杂:
struct ExpandableWeeks {
var isExpanded: Bool = true
var dates: [Date]
}
var myDates = [Date(), Date()]
var twoDWeeksArray: [[ExpandableWeeks]] = [] // 2D Array declaration
// Append works here because it is declared as a 2D array
twoDWeeksArray.append( [ExpandableWeeks(isExpanded: true, dates: myDates )] )
twoDWeeksArray[0].append( ExpandableWeeks(isExpanded: true, dates: myDates ))
print(twoDWeeksArray.count)
print(twoDWeeksArray[0].count)
// accessing the 2D Array's elements
print(twoDWeeksArray[0][0])
print(twoDWeeksArray[0][1])
日志输出:
1
2
ExpandableWeeks(isExpanded: true, dates: [2020-03-11 01:05:06 +0000, 2020-03-11 01:05:06 +0000])
ExpandableWeeks(isExpanded: true, dates: [2020-03-11 01:05:06 +0000, 2020-03-11 01:05:06 +0000])