2010-03-17 4 views
1

이 코드 trows EXC_BAD_ACCESS :[오류 localizedDescription]의 EXC_BAD_ACCESS;

NSError* error; 
    if(![appdelegate.managedObjectContext countForFetchRequest:request error:&error]) { 
     DLog(@"Failed to save to data store: %@", [error localizedDescription]); 
     NSArray* detailedErrors = [[error userInfo] objectForKey:NSDetailedErrorsKey]; 
     if(detailedErrors != nil && [detailedErrors count] > 0) { 
      for(NSError* detailedError in detailedErrors) { 
       DLog(@" DetailedError: %@", [detailedError userInfo]); 
      } 
     } 
     else { 
      DLog(@" %@", [error userInfo]); 
     } 
    } 
+0

[Clang 정적 분석기] (http://iphonedevelopment.blogspot.com/2009/02/clang-static-analyzer.html)를 사용해보세요. 누출 검색에 도움이됩니다 .. –

답변

1

NSError * 오류 = 무기 호;

이 맞습니다.

이것은 실제로 질문이 아닙니다. 나는 그것을 찾았고 그 대답을 찾기 위해 오래 걸렸다. 그래서 여기있다!

+0

그럼, 오류 메시지를 건너 뛰지 만 (나머지 코드는 보지 않고) 나는 당신의 논리가 실제로 올바르지 않다고 생각한다. 오류가 nil이면 메시지를 보내면 오류가 발생하지 않지만 어쨌든 로그에 가짜 메시지가 표시됩니다. –

+0

@Victor Jalencas "오류"를 nil로 설정하는 것은 맞지만, "오류"가 nil 인 경우 NSLog()/DLog()를 건너 뛰는 것은 빈 로그 메시지를 건너 뛰는데도 필요합니다. –

2

질문하지 않으므로 제목에 오류의 원인을 알고 싶다고 가정합니다. 귀하의 쿼리가 0 개체를 반환하는 것처럼 보입니다. 아무 것도 없었기 때문에 오류가 발생한 것처럼 해당 조건을 처리하므로 오류가 초기화되지 않았습니다 (심지어 할당되지 않았 음). 나쁜 액세스 예외