В чем ошибка в коде? К сожалению не могу посмотреть в чем ошибка в debugger

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?()
    }
}

Ответы (0 шт):