Schulung_iOS/Models.swift
2025-10-21 13:34:14 +02:00

49 lines
1.3 KiB
Swift

import Foundation
import SwiftUI
protocol Vehicle {
var name: String { get }
var color: Color { get set }
}
struct Train: Vehicle, CustomStringConvertible , CustomLocalizedStringResourceConvertible {
var name: String
var color: Color
var delay: Int
var content: Bike
var description: String { "Zug \(name) hat \(delay) Minuten Verspätung" }
var localizedStringResource: LocalizedStringResource {
"Train \(name) has ^[\(delay) minute](inflect: true) delay."
}
// init(describing obj: CustomLocalizedStringResourceConvertible){
// self.init(describing: obj.localizedStringResource)
// }
init(
name: String = "ICE",
color: Color = .red,
delay: Int = 0,
@BikeBuilder content: @escaping () -> Bike
) {
self.name = name
self.color = Color.yellow
self.delay = delay
self.content = content()
}
}
struct Bike: Vehicle, CustomStringConvertible {
var name: String
var price: Double
var color: Color
// var description: String { name + " is " + color }
var description: String {"\(name) is \(color)" }
static let trek = Bike(name: "Trek", price: 12.98,color: .red )
func emptyBasket() {
print("emptied", Date())
}
}