title: iOS app (this class is not key value coding-compliant for the key dataSource)
body: <p>I'm making an iPhone app, and I'm working at this TableViewController, but when testing, I get this error, and I don't really know what to do with it:</p>
  
  <pre><code>2012-01-13 13:45:32.947 HandHistory Reviews[3422:707] *** 
  Terminating app due to uncaught exception 'NSUnknownKeyException', 
  reason: '[&lt;SessionsTableViewController 0x191cb0&gt; setValue:forUndefinedKey:]: 
  this class is not key value coding-compliant for the key dataSource.'
  </code></pre>
  
  <p>Anyone got an idea?</p>
  
  <p>This is my SessionTableViewController.m file:</p>
  
  <pre><code>#import "SessionsTableViewController.h"
  #import "Session.h"
  
  @interface SessionsTableViewController()
  
  @property (nonatomic, copy) NSArray *sessions;
  
  @end
  
  @implementation SessionsTableViewController
  
  @synthesize sessions = _sessions;
  
  #pragma mark - View lifecycle
  
  - (void)viewWillAppear:(BOOL)animated
  {
      [super viewWillAppear:animated];
  
      NSMutableArray *sessions = [[NSMutableArray alloc] init];
  
      // Looking for files
      // Finding the Documents directory
      NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
      NSString *path = [paths objectAtIndex:0];
      NSArray *directoryContent = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:path error:nil];
  
      // Looping through each file in the directory
      for (NSString *file in directoryContent)
      {
          NSString *contents = [NSString stringWithContentsOfFile:[[paths objectAtIndex:0] stringByAppendingPathComponent:file] encoding:NSUTF8StringEncoding error:nil];
  
          Session *session = [[Session alloc] initWithName:file andContents:contents];
  
          [sessions addObject:session];
      }
  
      self.sessions = sessions;
  }
  
  #pragma mark - Table view data source
  
  - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
  {
      return [self.sessions count];
  }
  
  - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
  {
      static NSString *CellIdentifier = @"Session Cell";
  
      UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
      if (cell == nil) {
          cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
      }
  
      //cell.textLabel.text = [[self.sessions objectAtIndex:indexPath.row] name];
      //cell.detailTextLabel.text = [[NSString alloc] initWithFormat:@"%d hands", 10];
  
      return cell;
  }
  
  
  
  #pragma mark - Table view delegate
  
  - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
  {
      // Navigation logic may go here. Create and push another view controller.
      /*
       &lt;#DetailViewController#&gt; *detailViewController = [[&lt;#DetailViewController#&gt; alloc] initWithNibName:@"&lt;#Nib name#&gt;" bundle:nil];
       // ...
       // Pass the selected object to the new view controller.
       [self.navigationController pushViewController:detailViewController animated:YES];
       */
  }
  
  @end
  </code></pre>