以下是我的代码,当它到达函数末尾时,调试器会抛出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];
}
答案 0 :(得分:2)
EXC_BAD_ACCESS信号表示您的应用程序某处存在内存管理错误。它与服务器端无关。这并不太令人惊讶,因为您上面发布的代码存在大量内存管理错误。
您应该在项目中运行静态分析器 - 在Xcode中“构建和分析” - 并修复它标记的错误。另外,学习标准的Cocoa内存管理规则;他们会在您发布的代码(以及您的应用程序中的任何其他代码)中向您显示您所做的错误。
此外,了解指针变量实际上是什么很重要 - 对象的引用,而不是对象本身。例如,你写了这个:
NSString *urlStringRaw = [[NSString alloc] init];
urlStringRaw = [NSString stringWithFormat:@"..."];
为什么你认为你需要按照你的方式写第一行?