Iphone App在发布时崩溃

时间:2010-03-20 13:57:51

标签: objective-c xcode ios-simulator

我的简单iphone应用程序在启动时崩溃,它说“应用程序downloadText意外退出”当mac应用程序崩溃并发送到Apple按钮时,这些窗口都不会弹出。我的.h在下面,如果有人能帮我问一下,我会非常感激吗?

#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

编辑:
控制台出现:

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 ) 

1 个答案:

答案 0 :(得分:0)

检查控制台是否有异常报告。 [如果你很懒,可以搜索“控制台”应用程序。 ; - ]任何堆栈跟踪提供线索?

以调试模式在模拟器中运行。在viewDidLoad的开头设置断点,并在控制台中留下的任何堆栈跟踪中添加代码中的任何位置。

首先(而不是最后一次)将调用放到“[super viewDidLoad]”有帮助吗?如果那是在做任何工作,它可能会绊倒你的viewDidLoad。首先检查控制台输出 - 我倾向于仅在我了解出现问题时才更改代码,或者我可以使用它来排除潜在原因。