title: NSKeyedUnarchiver - how to prevent a crash
body: <p>I guess this is very obvious, but I have a question about loading data. If have a file called library.dat which stores all kind of information about objects in the app. It's set up all nicely (in terms of the initWithCoder and encodeWithCoder methods etc.), but I was just wondering what happens if the library.dat ever gets corrupted. I corrupted it a bit myself and the app will then crash. Is there any way to prevent a crash? Can I test a file before loading it? Here is the bit which can potentially be very fatal:</p>
  
  <pre><code>    -(void)loadLibraryDat {
  
      NSLog(@"loadLibraryDat...");
      NSString *filePath = [[self documentsDirectory] stringByAppendingPathComponent:@"library.dat"];
  
      // if the app crashes here, there is no way for the user to get the app running- except by deleting and re-installing it...
      self.libraryDat = [NSKeyedUnarchiver unarchiveObjectWithFile:filePath];
  
  
  
  }
  </code></pre>
  
  <p>I had a look at *NSInvalidUnarchiveOperationException but have no idea how I should implement this in my code. I'd be grateful for any examples. Thanks in advance!</p>