尝试触发PHP脚本,获取EXC_BAD_ACCESS

时间:2010-12-28 01:48:43

标签: iphone objective-c exc-bad-access

以下是我的代码,当它到达函数末尾时,调试器会抛出EXC_BAD_ACCESS错误,当我检查网站的日志时,从未访问过网址。如果有人可以帮我解决这个问题,我将不胜感激:

-(IBAction)submitEmail:(id)sender
{
    NSString *urlStringRaw = [[NSString alloc] init];
    urlStringRaw = [NSString stringWithFormat:@"http://vedev.org/AnonMail/sendEmail.php?from=%@&to=%@&subject=%@&body=%@", from.text, to.text, subject.text, bodyContent.text];
    NSString *urlString = [urlStringRaw stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    [urlStringRaw release];
    NSURL * url = [NSURL URLWithString:urlString];
    [urlString release];
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
    [url release];
    NSURLConnection *connection = [NSURLConnection connectionWithRequest:requestObj delegate:nil];
    [connection release];
    [requestObj release];   
}

1 个答案:

答案 0 :(得分:2)

EXC_BAD_ACCESS信号表示您的应用程序某处存在内存管理错误。它与服务器端无关。这并不太令人惊讶,因为您上面发布的代码存在大量内存管理错误。

您应该在项目中运行静态分析器 - 在Xcode中“构建和分析” - 并修复它标记的错误。另外,学习标准的Cocoa内存管理规则;他们会在您发布的代码(以及您的应用程序中的任何其他代码)中向您显示您所做的错误。

此外,了解指针变量实际上是什么很重要 - 对象的引用,而不是对象本身。例如,你写了这个:

NSString *urlStringRaw = [[NSString alloc] init];
urlStringRaw = [NSString stringWithFormat:@"..."];

为什么你认为你需要按照你的方式写第一行?