2012-07-01 18 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