2012-07-01 45 views
1

我无法摆脱RestKit中的EXC_BAD_ACCESS错误。我怀疑它是因为我有一个ARC项目,并且可能会多次释放请求或响应变量,但我花了数小时的时间并且不确定。didReceiveResponse方法中的RestKit带有EXC_BAD_ACCESS错误

我的问题听起来很像this post,但我不确定在我的代码中做出类似更改的位置。

我的实现文件有一个直接的方法将新对象发布到服务器。所有映射逻辑是下来NSObject的下面的实现文件中:

-(void) createMeeting 
{ 
    NSString* baseUrl = @"https://myapp.appspot.com/api/meeting/?format=json&[email protected]&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崩溃第二下面最后一行(如果([_request代表] 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]; 
    } 
} 

任何想法,以帮助我感谢很多

+0

你使用ARC吗? – Mehdzor

回答

1

EXC_BAD_ACCESS发生时,一个消息被发送到已经作为一个对象?发布。 您应该注意_request委托对象。 NSZombieEnabled断点也可以帮助你。 How to enable zombie objects

+0

明白了。上面的代码没有错。问题是将对象添加到本地数据库的第二种方法。它在RKRequest完成之前被调用。谢谢 – RedRobin