Вывести состав заказа в label
Изучаю swift. Заранее прошу прощения за кривой код и глупый вопрос. Задание такое, есть пивбар, в нем три позиции пива, изменяю их количество кнопками + -. По нажатию на кнопку Sell в label должна отобразиться информацию о выбранном пиве, если выбрано две позиции, то вывести две, если три, то три и т.д. Запарился на моменте как вывести все возможные комбинации? Неужели нужно перечислять все возможные комбинации? А если пива 50 позиций, невозможно же перечислить все комбинации. Ниже прикладываю код. помогите, пожалуйста, дойти мыслью...
//
// ViewController.swift
// egor
//
//
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var countOne: UILabel!
@IBOutlet weak var countTwo: UILabel!
@IBOutlet weak var countThree: UILabel!
@IBOutlet weak var nameCrinica: UILabel!
@IBOutlet weak var nameHeineken: UILabel!
@IBOutlet weak var nameCorona: UILabel!
@IBOutlet weak var labelInfo: UILabel!
@IBOutlet weak var stateButtonSell: UIButton!
@IBOutlet weak var stateButtonEndDay: UIButton!
@IBOutlet weak var stateButtonStartDay: UIButton!
@IBOutlet weak var labelPlusCorona: UIButton!
@IBOutlet weak var labelMinusCorona: UIButton!
@IBOutlet weak var labelPlusHeineken: UIButton!
@IBOutlet weak var labelMinusHeineken: UIButton!
@IBOutlet weak var labelPlusCrinica: UIButton!
@IBOutlet weak var labelMinusCrinica: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
stateButtonSell.isEnabled = false
labelMinusHeineken.isEnabled = false
labelMinusCrinica.isEnabled = false
labelMinusCorona.isEnabled = false
nameCorona.text = "Corona Beer"
countOne.text = "\(Manager.shared.counterCorona)"
countTwo.text = "\(Manager.shared.counterHeineken)"
countThree.text = "\(Manager.shared.counterCrinica)"
}
@IBAction func buttonMinusCorona(_ sender: UIButton) {
Manager.shared.counterCorona -= 1
countOne.text = "\(Manager.shared.counterCorona)"
if Manager.shared.counterCorona == 0 {
labelMinusCorona.isEnabled = false
}else{
labelPlusCorona.isEnabled = true
}
}
@IBAction func buttonPlusCorona(_ sender: UIButton) {
Manager.shared.counterCorona += 1
countOne.text = "\(Manager.shared.counterCorona)"
if Manager.shared.counterCorona == Manager.shared.beerCorona.quantityBottle {
labelPlusCorona.isEnabled = false
}else{
labelMinusCorona.isEnabled = true
}
if Manager.shared.counterCorona > 0 {
stateButtonSell.isEnabled = true
}
}
@IBAction func buttonMinusHeineken(_ sender: UIButton) {
Manager.shared.counterHeineken -= 1
countTwo.text = "\(Manager.shared.counterHeineken)"
if Manager.shared.counterHeineken == 0 {
labelMinusHeineken.isEnabled = false
}else{
labelPlusHeineken.isEnabled = true
}
}
@IBAction func buttonPlusHeineken(_ sender: UIButton) {
Manager.shared.counterHeineken += 1
countTwo.text = "\(Manager.shared.counterHeineken)"
if Manager.shared.counterHeineken == Manager.shared.beerHeineken.quantityBottle {
labelPlusHeineken.isEnabled = false
}else{
labelMinusHeineken.isEnabled = true
}
if Manager.shared.counterHeineken > 0 {
stateButtonSell.isEnabled = true
}
}
@IBAction func buttonMinusCrinica(_ sender: UIButton) {
Manager.shared.counterCrinica -= 1
countThree.text = "\(Manager.shared.counterCrinica)"
if Manager.shared.counterCrinica == 0 {
labelMinusCrinica.isEnabled = false
}else{
labelPlusCrinica.isEnabled = true
}
}
@IBAction func buttonPlusCrinica(_ sender: UIButton) {
Manager.shared.counterCrinica += 1
countThree.text = "\(Manager.shared.counterCrinica)"
if Manager.shared.counterCrinica == Manager.shared.beerCrinica.quantityBottle {
labelPlusCrinica.isEnabled = false
}else{
labelMinusCrinica.isEnabled = true
}
if Manager.shared.counterCrinica > 0 {
stateButtonSell.isEnabled = true
}
}
@IBAction func buttonSell(_ sender: UIButton) {
// labelInfo.text = "Ваш заказ: \n \(Manager.shared.beerCorona.nameBeer) - (\(Manager.shared.counterCorona)) л. \n \(Manager.shared.beerHeineken.nameBeer) - (\(Manager.shared.counterHeineken)) л. \n \(Manager.shared.beerCrinica.nameBeer) - (\(Manager.shared.counterCrinica)) л."
Manager.shared.beerCorona.quantityBottle -= Manager.shared.counterCorona
print(Manager.shared.beerCorona.quantityBottle)
Manager.shared.counterCorona = 0
countOne.text = "\(Manager.shared.counterCorona)"
if Manager.shared.counterCorona == 0 {
labelMinusCorona.isEnabled = false
}
}
@IBAction func buttonStartDay(_ sender: UIButton) {
}
@IBAction func buttonEndDay(_ sender: UIButton) {
}
}
Manager:
import Foundation
class Manager {
static let shared = Manager()
private init(){}
var beerCorona = Beer(nameBeer: "Corona", quantityBottle: 10, price: 6)
var beerHeineken = Beer(nameBeer: "Heineken", quantityBottle: 10, price: 4)
var beerCrinica = Beer(nameBeer: "Крыница", quantityBottle: 10, price: 2)
var counterCorona = 0
var counterHeineken = 0
var counterCrinica = 0
}
Ответы (1 шт):
Автор решения: Eugene Krivenja
→ Ссылка
Пример для playground, если я правильно вас понял
let beer1 = 4
let beer2 = 0
let beer3 = 1
var label = "Ваш заказ: \n"
if beer1 > 0 {
label += "Пиво 1 - \(beer1) л. \n"
}
if beer2 > 0 {
label += "Пиво 2 - \(beer2) л. \n"
}
if beer3 > 0 {
label += "Пиво 3 - \(beer3) л. \n"
}
print(label)