1

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

我的问题听起来与这篇文章相似,但我不确定在我的代码中的哪个位置进行类似的更改。

我的实现文件有一种将新对象发布到服务器的简单方法。所有映射逻辑都在下面 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 *)request 但是它在 RKResponse.m 下面倒数第二行崩溃(如果 ([[_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];
    }
}

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

4

1 回答 1

1

EXC_BAD_ACCESS 发生在将消息发送到已释放的对象时。您应该注意 _request 委托对象。NSZombieEnabled 断点也可能对您有所帮助。如何启用僵尸对象

于 2012-07-01T07:02:05.747 回答