Witam serdecznie,
Ćwiczę sobie programowanie obiektowe we Swifcie.
Mam taki kod:
var array = [KlasyTestowe]()
for index in 1...10 {
let liczba: UInt32 = arc4random_uniform(100)
let nazwa: String = "Produkt \(liczba)"
let ilosc: Int = Int(liczba)
let uzywany: Bool = true
let cena: Int = Int(liczba) * index
array.append(KlasyTestowe(name: nazwa, ilosc: ilosc, uzywany: uzywany, cena: cena))
}
for szukane in array {
print("\(szukane.name) i jego cena \(szukane.cena)")
}
który tworzy obiekty z produktami i następnie je wyświetla.
Kod klasy wygląda następująco:
class KlasyTestowe{
var name: String
var ilosc: Int
var uzywany: Bool
var cena: Int
init(name: String, ilosc: Int, uzywany: Bool, cena: Int) {
self.name = name
self.ilosc = ilosc
self.uzywany = uzywany
self.cena = cena
}
func dodaj_cene(add_cena: Int) -> Int{
return add_cena + 50
}
}
Proszę się nie sugerować polskimi nazwami zmiennych itp - wiem że powinny być po angielsku i formą zapisu. To są moje "naukowe notatki" ;)
Chciałbym do powyższego kodu:
-
przy okazji wyświetlania listy produktów ( funkcja for) wykonać funkcję dodaj_cene - dla poszczególnych, wyświetlanych obiektów.
Czy da się wywołać z tego miejsca funkcję/metodę dla wyświetlanego obiektu? Czy muszę napisać nową funkcję? -
Zmienić nazwę produktu (poza pętlą) dla pozycji 2 na "nowa nazwa produktu".
domyślam się że można zrobić coś w stylu:
array.remove(at: 1) // usunąć element tablicy
.... dodać ponownie ten obiekt, z nową nazwą
tylko to zapewne nie jest optymalny sposób :(
Czy mógłbym prosić o przykład jak zrobić powyższe operacje? :)
Potrzebuję sobie to tak łopatologicznie rozpisać :)
Jeszcze raz bardzo dziękuję za pomoc