使用以下代码接收EXC_BAD_ACCESS消息

时间:2011-04-07 02:15:23

标签: objective-c ios

我是Objective C的新手,所以我甚至不确定这条消息的含义:

  

EXC_BAD_ACCESS

执行以下代码时:

-(void)HelloWorld
{
    NSURL *url = [NSURL URLWithString:@"http://example.com/service.asmx/HelloWorld"];
    NSMutableURLRequest *request =[NSMutableURLRequest requestWithURL: url];

    //do post request for parameter passing 
    [request setHTTPMethod:@"POST"];

    //set the content type to JSON
    [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];

    NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
    [connection release];
    [request release];
}

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data 
{
    // Store incoming data into a string
    NSString *jsonString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
}

我正在尝试与Json Framework集成。

我调用HelloWorld,它向我的服务执行异步请求。奇怪的是,它有一次工作,现在我每次都会得到这个EXC_BAD_ACCESS消息。会有什么想法导致这个?

3 个答案:

答案 0 :(得分:5)

您不应该发布请求。它已经自动释放了。

答案 1 :(得分:2)

EXC_BAD_ACCESS表示你有一个糟糕的指针。在您的情况下,这是因为您在已经自动释放的情况下发布请求。

答案 2 :(得分:1)

您的代码还存在另一个问题(与崩溃无关)。您创建NSURLConnection并在创建后立即释放连接。创建异步连接时,应该在委托方法中释放连接(如果连接失败或连接完成加载)。