2013-05-31 63 views

回答

1

在main.m文件

int main(int argc, char *argv[]) { 

    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; 
// int retVal = UIApplicationMain(argc, argv, nil, nil); 
// [pool release]; 
// return retVal; 

    int retVal; 
    @try 
    { 
     retVal = UIApplicationMain(argc, argv, nil, NSStringFromClass([SRSPoulinsAppAppDelegate class])); 

    } 
    @catch (NSException *exception) 
    { 
     NSLog(@"CRASH: %@", exception); 
     // NSLog(@"Stack Trace: %@", [exception callStackSymbols]); 


     NSString *BugFileName = @"BugTracker.txt"; 

     // Check if the SQL database has already been saved to the users phone, if not then copy it over 
     BOOL success; 

      NSFileManager *fileManager = [NSFileManager defaultManager]; 
     NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
     NSString *documentsDirectory = [paths objectAtIndex:0]; 
     NSString *writableDBPath = [documentsDirectory stringByAppendingPathComponent:BugFileName]; 

     // Check if the database has already been created in the users filesystem 

     success = [fileManager fileExistsAtPath:writableDBPath]; 

     // If the database already exists then return without doing anything 
     if(success) 
     { 
      NSString *error = [NSString stringWithFormat:@"%@",exception ]; 
      NSString *errorDesc = [error stringByAppendingString:[NSString stringWithFormat:@"\n%@",[exception callStackSymbols]]]; 

      NSFileHandle *fileHandler = [NSFileHandle fileHandleForUpdatingAtPath:writableDBPath]; 
      [fileHandler seekToEndOfFile]; 
      [fileHandler writeData:[errorDesc dataUsingEncoding:NSUTF8StringEncoding]]; 
      [fileHandler closeFile]; 
     } 
     else 
     { 

      writableDBPath = [documentsDirectory stringByAppendingPathComponent:BugFileName]; 

      //create file if it doesn't exist 
      if(![[NSFileManager defaultManager] fileExistsAtPath:writableDBPath]) 
      { 
       [[NSFileManager defaultManager] createFileAtPath:writableDBPath contents:nil attributes:nil]; 
      } 
      //append text to file (you'll probably want to add a newline every write) 

      NSString *error = [NSString stringWithFormat:@"%@",exception ]; 
      NSString *errorDesc = [error stringByAppendingString:[NSString stringWithFormat:@"\n%@",[exception callStackSymbols]]]; 


      NSFileHandle *file = [NSFileHandle fileHandleForUpdatingAtPath:writableDBPath]; 
      [file seekToEndOfFile]; 
      [file writeData:[errorDesc dataUsingEncoding:NSUTF8StringEncoding]]; 
      [file closeFile]; 

     } 

     // [request setDidFinishSelector:@selector(requestFinished:)]; 
     //[request setDidFailSelector:@selector(requestFailed:)]; 





    } 
    @finally 
    { 

    } 

    return retVal; 

} 
+0

請注意,這隻適用於Obj-C異常。不EXC_BAD_ACCESS和其他此類崩潰。 – Mar0ux

相關問題