Я не пробовал это, но я думаю, что это сделало бы это:
i %= list.Length;
int index = i;
do {
index %= list.Length;
sb.AppendFormat("{0} ", list[index]);
while (++index != i);
Я должен исправить свой комментарий сверху. Ваш dataView
должен быть типа [TableSection: [Category]]
.
Теперь несколько слов о вашей setData
функции. В вашем цикле вы используете оператор объединения нулей ??
при инициализации категории. Может быть, я что-то упустил, но я не вижу, как это может привести к фатальной ошибке. В категории нет сбойного инициализатора. Сейчас я точно не знаю, что такое datas
и откуда оно берется, но если некоторые из свойств там являются необязательными, я бы рекомендовал сделать их необязательными и в категории.
Затем попробуйте поработать с map
для преобразования ваших данных. Вот пример:
var dataView = [TableSection: [Category]]()
var dataViewLoop = (0 ..< 10).map { i -> Category in
let status = i % 2 == 0 ? "confirmed" : "request"
return Category(clientName: "\(i)", appType: "\(i)", appDateTime: "nil", status: status, photo: nil)
}
dataView[.appointments] = dataViewLoop.filter({ [110].status == "confirmed" })
dataView[.requests] = dataViewLoop.filter({ [110].status == "request" })