didReceiveResponse方法中的RestKit出现EXC_BAD_ACCESS错误

时间:2012-07-01 03:17:34

标签: iphone objective-c json restkit

我无法摆脱RestKit中的EXC_BAD_ACCESS错误。我怀疑它是因为我有一个ARC项目,并且可能会多次发布请求或响应变量,但我花了好几个小时就不确定了。

我的问题听起来与this post类似,但我不确定代码中的哪个位置会进行类似的更改。

我的实现文件有一个简单的方法将新对象发布到服务器。所有映射逻辑都在以下NSObject的实现文件中:

-(void) createMeeting 
{
    NSString* baseUrl = @"https://myapp.appspot.com/api/meeting/?format=json&username=testuser@test.com&api_key=f8s9df8as8df9s8d97";
    RKObjectManager* rkoManager = [RKObjectManager objectManagerWithBaseURLString:baseUrl];    [NewMeetingRK initMap:rkoManager];
    NewMeetingRK *newmtg = [NewMeetingRK alloc];
    newmtg.leader = self.leaderEmail.text;
    newmtg.startdate = [sqliteformatter stringFromDate:bdate];
    newmtg.enddate = [sqliteformatter stringFromDate:edate];
[[RKObjectManager sharedManager] postObject:newmtg delegate:self];

它成功启动requestDidStartLoad:(RKRequest *)请求 然而它在下面的倒数第二行的RKResponse.m中崩溃(if([[_request delegate] respondsToSelector:...带有EXC_BAD_ACCESS错误。

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSHTTPURLResponse *)response {
    RKResponseIgnoreDelegateIfCancelled();
    RKLogDebug(@"NSHTTPURLResponse Status Code: %ld", (long) [response statusCode]);
    RKLogDebug(@"Headers: %@", [response allHeaderFields]);
    _httpURLResponse = [response retain];
    [_request invalidateTimeoutTimer];
    if ([[_request delegate] respondsToSelector:@selector(request:didReceiveResponse:)]) {
      [[_request delegate] request:_request didReceiveResponse:self];
    }
}

有什么想法可以帮到我吗?非常感谢。

1 个答案:

答案 0 :(得分:1)

当消息发送到已释放的对象时,会发生EXC_BAD_ACCESS。 你应该注意_request委托对象。 NSZombieEnabled断点也可能对你有所帮助。 How to enable zombie objects