class Item {
var itemId: Int
var name: String
var price: Float
}
class Order {
var items: [Item] = []
var deleteBlock: (()->(Void))?
var timer: Timer?
/// сумма заказа
var total: Float {
var total = Float(exactly: 0)!
var i = 0
while i < items.count {
var item = items[i]
total += item.price
i += 1
}
return total
}
/// Добавить товар к заказу
func put(item: Item) {
items.append(item)
}
/// Посчитать заказ и подготовить к отправке
func make() -> [[String: Int]] {
var data: [[String: Int]] = []
for item in items {
var newRow: [String: Int] = ["id": item.itemId, "count": 1]
var needNewRow = true
for var row in data {
if item.itemId == row["id"]! {
row["count"] = row["count"]! + 1
needNewRow = false
}
}
if needNewRow {
data.append(newRow)
}
}
return data
}
/// удалить товары из заказа через 20 секунд
func deleteAfter20Seconds(block: (()->(Void))?) {
self.deleteBlock = block
self.timer = Timer.scheduledTimer(withTimeInterval: 20, repeats: false, block: { (timer) in
self.delete()
})
}
/// отменить удаление товаров
func cancelDelete() {
self.timer = nil
}
///очистка товаров
func delete() {
items = []
deleteBlock?()
}
}
Нет доступа к дебагеру сейчас, но нужно понять в чем ошибка в коде
aystet
#1