tableview
UITableview
properties:
var tableviewTitles = ["item 1","item 2", "item 3","item 4","item 5","item 6"]in viewdidload()
self.tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell")obliged data en source methods
//MARK: tableview
  func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return tableviewTitles.count
  }
  
  func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    return 1
  }
  let cellIdentifier = "cell"
  func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier) as UITableViewCell
    cell.textLabel?.text = tableviewTitles[indexPath.row]
    
    return cell
    
  }with a lot of (large) images:
extension ViewController{
    func numberOfSectionsInTableView(tableView: UITableView) -> Int {
        return 1
    }
    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return images.count
    }
    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath)
        cell.textLabel?.text = images[indexPath.row]
        if cache.objectForKey("\(indexPath.row)") != nil
        {
            cell.imageView?.image = cache.objectForKey("\(indexPath.row)") as! UIImage
        }
        else{
            
        }
        return cell
    }
    func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
        if cache.objectForKey("\(indexPath.row)") != nil
        {
            cell.imageView?.image = cache.objectForKey("\(indexPath.row)") as! UIImage
        }
        else{
            cell.imageView?.image = UIImage(named: "placeholder.png")
            dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) {
                if let img = UIImage(named: "\(self.images[indexPath.row]).png")
                {
                    cell.imageView?.image = img
                    self.cache.setObject(img, forKey: "\(indexPath.row)")
                }
                
            }
        }
        
        
       
    }
}