[Swift]: Learning 3
swift
04/17/2019
Tuples
Tuple is grouping of values. Useful when returning multiple values from a func
SWIFT
let x: (w: String, i: Int, v: Double) = ("hello", 10, 0.2)print(x.w) // prints helloprint(x.i) // prints 10print(x.v) // prints 0.2let (wrd, num, val) = x // renames tuple's elementsOther way of declaring (NOT preferred way)
SWIFT
let x: (String, Int, Double) = ("hello", 10, 0.2)let (word, number, value) = xprint(word)print(number)print (value)Tuples as return value
SWIFT
func getSize() -> (weight: Double, height: Double) {return (250,80)}To access the return value
SWIFT
let x = getSize()print("weight: \(x.weight)") // weight: 250OR
SWIFT
print("height: \(getSize().height)") // height: 80Playing sound by using AVAudioPlayer
1) make sure that the desired file is properly imported in navigation pane

you can drag & drop file and make a reference to the file. Otherwise, you can go to Project -> Project Build Phases -> Copy Bundle Resources and add folder into it
2) import the framework
SWIFT
import AVFoundation3) Create an instance variable
SWIFT
var audioPlayer: AVAudioPlayer?4) Link the file to the audioPlayer created in 3)
SWIFT
override func viewDidLoad() {  super.viewDidLoad()  do {    if let fileURL = Bundle.main.path(forResource: "fileName", ofType: "mp3") {    audioPlayer = try AVAudioPlayer(contentsOf: URL(fileURLWithPath: fileURL))    } else {        print("No file with specified name exists")      }    } catch let error {        print("\(error.localizedDescription)")      }}Put in desired fileName with an extention. Bundle API will find the path and pass it into audioPlayer.
5) Play music once
SWIFT
audioPlayer?.play()Example:
SWIFT
@IBAction func touchCard(_ sender: UIButton){        audioPlayer?.stop()        audioPlayer?.currentTime = 0        audioPlayer?.play()    }In Concentration, audio plays every time user touches a card. Having audioPlayer?.play() by itself, won't let it play multiple times at once
+
SWIFT
audioPlayer?.stop()stops the music
SWIFT
audioPlayer?.numberOfLoops = 0value 0 plays it once (default) 1 plays it twice -1 plays it continuously