У меня есть класс, который я хочу добавить туда с помощью цикла for.
Это мой класс:
public class Expandable {
public var name: String
public var id:Int
init(name: String, id:Int) {
self.name = name
self.id = id
}
Я могу добавить вручную вот так:
let a = [Expandable(name:"aaa", id: 12)]
Но когда я пытаюсь использовать цикл for, он вообще не работает.
for allin in items{
sidebarMenuItem?.append(Expandable(name: allin["Code"] as! String, id: allin["Id"] as! Int))
}
Items
данные работают отлично, но sidebarMenuItem
получает значение Optional(MyProjectName.Expandable)
, когда я их печатаю.
ОБНОВИТЬ :
Я понял, что хорошо получаю данные, но получаю ошибку в функции expandCell
:
фатальная ошибка: не удается сформировать диапазон с верхней границей ‹ нижней границей
Моя функция ExpandCell:
private func expandCell(tableView: UITableView, index: Int) {
// Expand Cell (add ExpansionCells
if let expansions = sideBarData?[index]?.expandable {
for i in 1...expansions.count {
sideBarData?.insert(nil, at: index + i)
tableView.insertRows(at: [NSIndexPath(row: index + i, section: 0) as IndexPath] , with: .top)
}
}
}
sidebarMenuItem
, очевидно, является необязательным (или даже имеет тип[Expandable?]
), чего вы ожидаете? Во многих случаях бессмысленно объявлять массивы необязательными. - person vadian   schedule 23.06.2017for i in expansions.indices {
- person Leo Dabus   schedule 23.06.2017