import UIKit class SecondViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. } var lines : [String] = [] var cities : [CityData] = [] var sorted : [CityData] = [] @IBAction func sortByName(_ sender: UIButton) { sorted = [] cities.sort(by: CityData.cityAsc) sorted = cities } @IBAction func sortByInhabitants(_ sender: UIButton) { sorted = [] cities.sort(by: CityData.populationAsc) sorted = cities } @IBAction func sortByNameDesc(_ sender: UIButton) { sorted = [] cities.sort(by: CityData.cityDesc) sorted = cities } @IBAction func sortByInhabitantsDesc(_ sender: UIButton) { sorted = [] cities.sort(by: CityData.populationDsc) sorted = cities } @IBAction func sortBoth(_ sender: UIButton) { sorted = [] cities.sort(by: CityData.sortTwo) sorted = cities } @IBAction func reverse(_ sender: UIButton) { sorted = [] let reversed = lines.reversed() sorted = reversed.compactMap{ CityData(csvString: $0, withDelimiter: "\t") } } @IBAction func shuffle(_ sender: UIButton) { sorted = [] let shuffled = lines.shuffled() sorted = shuffled.compactMap{ CityData(csvString: $0, withDelimiter: "\t") } } }