Swift Loops & Animations
Aus Wikizone
Version vom 22. Januar 2023, 19:51 Uhr von 134.3.86.14 (Diskussion)
Links[Bearbeiten]
Swift (Programmiersprache)
Einführung - Loops über verschiedene Objekte[Bearbeiten]
Swift kann nicht nur über Arrays Loopen sondern auch über Strings
let titleText = "⚡️FlashChat"
for letter in titleText {
print(letter)
}
For in Loop[Bearbeiten]
let names = ["Stephan", "Yvonne", "Finn", "Damon"]
let fruits: Set = ["Apple", "Pear", "Orange", "Banana"]
let contacts = ["John":123, "Eva":456, "Adam":789]
let word = "Donaudampfschifffahrtsgesellschaftskapitän"
let halfOpenRange = 1..<5
let closedRange = 1...5
// for in loop
// loop through an array
for name in names { print("Hello, \(name)") }
// range
for number in 1...5{ print(number) }
// look no var
for _ in 1...5 { print ("hello") }
// Sets doesn't guarantee order. But they are fast
for fruit in fruits{ print("I like \(fruit)") }
// Collections have keys and values
for person in contacts{ print("\(person.key)'s number is \(person.value)") }
// Strings can be looped as characters
for char in word { print(char) }
Loop mit Effekt[Bearbeiten]
Mit einem Timer kann man sogar eine Animation in einem Textfeld erzeugen:
titleLabel.text = ""
let titleText = "⚡️FlashChat"
var charIndex = 0.0
for letter in titleText {
Timer.scheduledTimer(withTimeInterval: 0.1 * charIndex, repeats: false){(myTimer) in
self.titleLabel.text?.append(letter)
}
charIndex += 1
}
While loop & do while loop[Bearbeiten]
while somethingIsTrue {
// do something
}
or do while - which will do the loop at least one time
do {
// do something
} while somethingIsTrue
<syntaxhighlight lang="swift">
// while loop - careful - do not create infitinte loops ;)
var now = Date().timeIntervalSince1970
let oneSecondFromNow = Date().timeIntervalSince1970 + 1
while now < oneSecondFromNow {
now = Date().timeIntervalSince1970
print("waiting...")
}
// fibonacci row
func fibonacci(n: Int) {
if n < 2 { print("n has to be 2 at least"); return; }
var last = 0
var current = 1
var fibonaccis: [Int] = [last,current]
for _ in 2..<n {
let next = last + current
fibonaccis.append(last + current)
last = current
current = next
}
print (fibonaccis)
}
fibonacci(n: 10)