int retVal = UIApplicationMain(argc,argv,nil,nil);尝试在webView中加载pdf时EXC_BAD_ACCESS

时间:2011-06-30 12:46:32

标签: iphone pdf uiwebview exc-bad-access

大家好,你是我找到这个bug的最后机会。我搜索了一整天都找不到任何东西。

我正在做的是从本地保存pdf文件,然后将其加载到webView。在iOS 4.0和4.1中,它给出了BAD_ACCESS错误,而在iOS 4.2和4.3中它可以正常工作。

这是我正在使用的代码:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"press.pdf"]; 

filePath = [[NSURL fileURLWithPath:path]retain];
NSError *err =nil;
if ([[NSFileManager defaultManager] fileExistsAtPath:path]) { //if file already exists delete it
    NSLog(@"file is already there !");
    [[NSFileManager defaultManager] removeItemAtPath:path error:&err];
    NSLog(@"error: %@",err);
}
[responseData writeToURL:filePath atomically:YES];
[responseData release];

if ([[NSFileManager defaultManager] fileExistsAtPath:path]) {
    NSLog(@"file is  there");
    NSData *pdfFile = [[NSData alloc]initWithContentsOfFile:path ];
    [webView loadData:pdfFile MIMEType:@"application/pdf" textEncodingName:@"utf-8" baseURL:nil];
    [pdfFile release];
}
else{
    NSLog(@"file not there");
}

我尝试启用NSAutoreleaseFreedObjectCheckEnabledNSZombieEnabledNSDebugEnabled,但在控制台中我什么都没得到。 Xcode只停在该行:

int retVal = UIApplicationMain(argc, argv, nil, nil); 

并说明EXC_BAD_ACCESS

我不知道它可能是什么以及接下来要去哪里看。请帮忙

编辑:我忘了提及如果我评论下面的行,它显然不会崩溃,因为没有任何内容被加载到webView。

[webView loadData:pdfFile MIMEType:@"application/pdf" textEncodingName:@"utf-8" baseURL:nil];

2 个答案:

答案 0 :(得分:1)

尝试将所有release语句注释掉作为开始......如果崩溃消失,请开始缩小导致问题的原因。另外:你应该学习autorelease,因为在很多情况下你会在上面的代码中不必要地保留。

如果这不起作用,请尝试逐位注释掉你的代码片段以找出它真正爆炸的位置(显然不是XCode显示的地方)。

答案 1 :(得分:0)

我遇到了同样的问题,它与模拟器中的自动更正有关。

模拟器>设置>一般>键盘>自动更正=关