title: self.tableView.reloadData() not working in Swift
body: <p>I'm attempting to learn <code>Swift</code> &amp; the basics of <code>iOS</code> dev at the same time, so bear with me. I've got a <code>TableViewController</code> that is firstly parsing a local <code>JSON</code> file and rendering it's very simple data into <code>TableViewCell</code> and SectionHeaderViews. Within the same <code>TableViewController</code>, I'm making a call to a <code>JSON</code> endpoint, which is returning data, which I am then setting to variables so I can access what I actually want to get at (the API structure is less than desirable). So, I finally set the proper data to be <code>self.tableData</code> and then call <code>self.tableView.reloadData()</code> but nothing happens. What gives?</p>
  
  <pre><code>import UIKit
  
  class BusinessTableViewController: UITableViewController {
  
      var data: NSMutableData = NSMutableData()
      var tableData: NSArray = NSArray()
  
      @lazy var Business: NSArray = {
          let pathTCT = NSBundle.mainBundle().pathForResource("TCT", ofType: "json")
          let data = NSData.dataWithContentsOfFile(pathTCT, options: nil, error: nil)
          return NSJSONSerialization.JSONObjectWithData(data, options: nil, error: nil) as NSArray
          }()
  
      override func viewDidLoad() {
          super.viewDidLoad()
  
          navigationItem.titleView = UIImageView(image: UIImage(named: "growler"))
  
          tableView.registerClass(BeerTableViewCell.self, forCellReuseIdentifier: "cell")
          tableView.separatorStyle = .None
  
          fetchKimono()
      }
  
      override func numberOfSectionsInTableView(tableView: UITableView!) -&gt; Int {
  //        return Business.count
          return 1
      }
  
      override func tableView(tableView: UITableView?, numberOfRowsInSection section: Int) -&gt; Int {
          let biz = Business[section] as NSDictionary
          let results = biz["results"] as NSDictionary
          let beers = results["collection1"] as NSArray
          return beers.count
      }
  
      override func tableView(tableView: UITableView?, cellForRowAtIndexPath indexPath: NSIndexPath?) -&gt; UITableViewCell? {
          let cell = tableView!.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath!) as BeerTableViewCell
          if let path = indexPath {
              let biz = Business[path.section] as NSDictionary
              let results = biz["results"] as NSDictionary
              let beers = results["collection1"] as NSArray
              let beer = beers[path.row] as NSDictionary
  
              cell.titleLabel.text = beer["BeerName"] as String
          }
  
          return cell
      }
  
      override func tableView(tableView: UITableView!, titleForHeaderInSection section: Int) -&gt; String! {
          let biz = Business[section] as NSDictionary
          return biz["name"] as String
      }
  
      override func tableView(tableView: UITableView!, viewForHeaderInSection section: Int) -&gt; UIView! {
          let biz = Business[section] as NSDictionary
          let view = LocationHeaderView()
          view.titleLabel.text = (biz["name"] as String).uppercaseString
          return view
      }
  
      override func tableView(tableView: UITableView!, heightForHeaderInSection section: Int) -&gt; CGFloat {
          return 45
      }
  
      func fetchKimono() {
          var urlPath = "names have been changed to protect the innocent"
          var url: NSURL = NSURL(string: urlPath)
          var request: NSURLRequest = NSURLRequest(URL: url)
          var connection: NSURLConnection = NSURLConnection(request: request, delegate: self, startImmediately: false)
  
          connection.start()
      }
  
      func connection(didReceiveResponse: NSURLConnection!, didReceiveResponse response: NSURLResponse!) {
          // Recieved a new request, clear out the data object
          self.data = NSMutableData()
      }
  
      func connection(connection: NSURLConnection!, didReceiveData data: NSData!) {
          // Append the recieved chunk of data to our data object
          self.data.appendData(data)
      }
  
      func connectionDidFinishLoading(connection: NSURLConnection!) {
          // Request complete, self.data should now hold the resulting info
          // Convert the retrieved data in to an object through JSON deserialization
          var err: NSError
          var jsonResult: NSDictionary = NSJSONSerialization.JSONObjectWithData(data, options:    NSJSONReadingOptions.MutableContainers, error: nil) as NSDictionary
          var results: NSDictionary = jsonResult["results"] as NSDictionary
          var collection: NSArray = results["collection1"] as NSArray
          if jsonResult.count&gt;0 &amp;&amp; collection.count&gt;0 {
              var results: NSArray = collection as NSArray
              self.tableData = results
              self.tableView.reloadData()
          }
      }
  }
  </code></pre>