title: Why does my array empty out after it's loaded?
body: <p>I must be missing something basic, but I can't seem to keep my array loaded. It loads successfully, but it turns up empty when it appears in another function.  </p>
  
  <p>My goal is to randomly pick a city from the locations array.  The mapview loads with all my annotations, but then my locations array empties out when I call pickRandomNumber() after the annotation appears.</p>
  
  <p>Thank you,</p>
  
  <p>Eli</p>
  
  <p>Here is my code:</p>
  
  <pre><code>import UIKit
  import Mapbox
  import GameplayKit
  
  class ViewController: UIViewController, MGLMapViewDelegate {
  
  var playerAnswer = ""
  var number = Int()
  var locations:[(number: Int, title: String, latitude:Double, Longitude:Double)] = []
  var question = ""
  var theCount = Int()
  var randomNumber = Int()
  var mapView = MGLMapView()
  
  
  override func viewDidLoad() {
      super.viewDidLoad()
  
      mapView = MGLMapView(frame: view.bounds)
  
      mapView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
  
      // Set the map’s center coordinate and zoom level.
      mapView.setCenter(CLLocationCoordinate2D(latitude: 40.7326808, longitude: -73.9843407), zoomLevel: 1, animated: true)
      view.addSubview(mapView)
  
  
  
      mapView.allowsZooming = true
  
      let center = CLLocationCoordinate2D(latitude: 38.894368, longitude: -77.036487)
      mapView.setCenter(center, zoomLevel: 7, animated: true)
  
      // Set the delegate property of our map view to `self` after instantiating it.
      mapView.delegate = self as! MGLMapViewDelegate
  
      loadArray()
  
  }
  
  
  func loadArray() {
       var locations = [
          [number:0, "title": "Washington DC, USA",    "latitude": 38.90, "longitude": -77.04],
          [number:1,"title": "Ottawa, Canada", "latitude": 45.41, "longitude": -75.70],
          [number:2,"title": "Mexico City, Mexico",     "latitude": 19.43, "longitude": -99.13],
          [number:3,"title": "Tegucigalpa, Honduras",     "latitude": 14.08, "longitude": -87.21],
          [number:4,"title": "San Salvador, El Salvador",     "latitude": 13.69, "longitude": -89.19],
          [number:5,"title": "Managua, Nicaragua",     "latitude": 12.13, "longitude": -86.25],
          [number:6,"title": "Belmopan, Belize",     "latitude": 14.64, "longitude": -90.51],
          [number:7,"title": "Panama City, Panama",     "latitude": 8.99, "longitude": -79.52],
          [number:8,"title": "Havana, Cuba",     "latitude": 23.13, "longitude": -82.38],
          [number:9,"title": "Caracas, Venezuela",     "latitude": 10.49, "longitude": -66.88],
          [number:10,"title": "Bogotá, Colombia",     "latitude": 4.61, "longitude": -74.08],
          [number:11,"title": "Lima, Peru",     "latitude": -12.04, "longitude": -77.03]
  
      ]
  
      for location in locations {
          let annotation = MGLPointAnnotation()
          annotation.title = location["title"] as? String
          annotation.coordinate = CLLocationCoordinate2D(latitude: location["latitude"] as! Double, longitude: location["longitude"] as! Double)
          mapView.addAnnotation(annotation)
      }
  
  
      print ("Current count for locations is \(locations.count)")  // count is 12
  
  }
  
  func pickRandomNumber() {
  
      print ("The array count is \(locations.count)")  // count is 0
      randomNumber = GKARC4RandomSource().nextInt(upperBound: locations.count)
      print (randomNumber) // randomNumber is always 0
  
  }
  
  
  // Use the default marker. See also: our view annotation or custom marker examples.
  func mapView(_ mapView: MGLMapView, viewFor annotation: MGLAnnotation) -&gt; MGLAnnotationView? {
  
      return nil
  }
  
  // Allow callout view to appear when an annotation is tapped.
  func mapView(_ mapView: MGLMapView, annotationCanShowCallout annotation: MGLAnnotation) -&gt; Bool {
      playerAnswer = annotation.title as! String
      print ("The player pressed \(playerAnswer)")
      pickRandomNumber()
      return true
  }
  </code></pre>