2010-03-20 6 views
0

Mon application iphone simple se bloque au lancement, il dit "l'application téléchargementText quitter de façon inattendue" Aucune de ces fenêtres qui apparaissent quand une application mac se bloque et a un bouton envoyer à Apple. Mon .h est ci-dessous et j'apprécierais grandement si quelqu'un pourrait me donner un coup de main quant à ce qui ne va pas?Iphone App plantant au lancement

#import "downloadTextViewController.h" 

@implementation downloadTextViewController 


// Implement viewDidLoad to do additional setup after loading the view, typically from a nib. 
- (void)viewDidLoad { 
    NSString *myPath = [self saveFilePath]; 
    NSLog(myPath); 
    BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:myPath]; 

    if (fileExists) 
    { 
     NSArray *values = [[NSArray alloc] initWithContentsOfFile:myPath]; 
     textView.text = [values objectAtIndex:0]; 
     [values release]; 
    } 

    // notification 
    UIApplication *myApp = [UIApplication sharedApplication]; 

    // add yourself to the dispatch table 
    [[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(applicationWillTerminate:) 
               name:UIApplicationWillTerminateNotification 
               object:myApp]; 

    [super viewDidLoad]; 
} 

- (IBAction)fetchData { 
    /// Show activityIndicator/progressView 

    NSURLRequest *downloadRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://simpsonatyapps.com/exampletext.txt"] 
                cachePolicy:NSURLRequestReloadIgnoringCacheData 
               timeoutInterval:1.0]; 

    NSURLConnection *downloadConnection = [[NSURLConnection alloc] initWithRequest:downloadRequest delegate:self]; 

    if (downloadConnection) 
     downloadedData = [[NSMutableData data] retain]; 
    else { 
     /// Error message 
    } 
} 

- (void)connection:(NSURLConnection *)downloadConnection didReceiveData:(NSData *)data { 

    [downloadedData appendData:data]; 

    NSString *file = [[NSString alloc] initWithData:downloadedData encoding:NSUTF8StringEncoding]; 

    textView.text = file; 

    /// Remove activityIndicator/progressView 
    [[UIApplication sharedApplication] setApplicationIconBadgeNumber:1]; 
} 

- (NSString *) saveFilePath 
{ 
    NSArray *pathArray = 
    NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 

    return [[pathArray objectAtIndex:0] stringByAppendingPathComponent:@"savedddata.plist"]; 
} 

- (void)applicationWillTerminate:(UIApplication *)application { 
    NSArray *values = [[NSArray alloc] initWithObjects:textView.text,nil]; 
    [values writeToFile:[self saveFilePath] atomically:YES]; 
    [values release]; 
} 

- (void)didReceiveMemoryWarning { 
    // Releases the view if it doesn't have a superview. 
    [super didReceiveMemoryWarning]; 

    // Release any cached data, images, etc that aren't in use. 
} 

- (void)viewDidUnload { 
    // Release any retained subviews of the main view. 
    // e.g. self.myOutlet = nil; 
} 

- (void)dealloc { 
    [super dealloc]; 
} 

- (NSCachedURLResponse *)connection:(NSURLConnection *)connection willCacheResponse:(NSCachedURLResponse *)cachedResponse { 
    return nil; 
} 


@end 

Edit:
La console vient avec:

21/03/10 2:32:19 PM downloadText[3548] Stack: 
    (8307803, 2474450491, 8466881, 2787944, 2786485, 25429108, 8210735, 25423659, 
    25431927, 24117515, 24111079, 24110797, 8337, 23594443, 23632310, 23620404, 
    23602815, 23629921, 134489, 8092544, 8088648, 23596565, 23633839, 8252) 
+0

Vous avez vraiment besoin d'afficher la raison du vidage pour ne pas avoir à faire un projet dans xcode pour vous aider. – Mobs

Répondre

0

Vérifiez la console pour les rapports d'exception. [Recherche Spotlight pour l'application "Console" si vous êtes paresseux. ; -] Toute pile trace là pour fournir des indices?

Exécuter dans le simulateur en mode débogage. Définissez un point d'arrêt au début de viewDidLoad, plus n'importe où dans votre code, à partir de toute trace de pile restante dans la console.

Est-ce que l'appel à "[super viewDidLoad]" en premier (au lieu de dernier) aide? Si cela ne fonctionne pas, il se peut que votre ViewDidLoad se déclenche. Vérifiez d'abord la sortie de la console - j'ai tendance à modifier le code uniquement lorsque je comprends ce qui ne va pas, ou je peux l'utiliser pour exclure des causes potentielles.

+0

merci pour la réponse, la console vient avec: 21/03/10 14:32:19 downloadText [3548] Stack: ( 8.307.803, 2474450491, 8466881, 2787944 , 2.786.485, 25429108, 8210735, 25423659, 25431927 , 24117515, 24111079 , 24110797, 8337, 23594443, 23632310 , 23620404, 23602815 , 23629921, 134489 , 80 92544, 8088648, 23596565, 23633839,) – declanjs