2011-11-14 3 views
1

OCMock 및 UIView에 몇 가지 문제가 있습니다.partialMockForObject 및 UIView가있는 EXC_BAD_ACCESS

는이 코드의 종류가 있습니다

UIView *view1 = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 10, 10)]; 
id view1Mock = [OCMockObject partialMockForObject:view1]; 

[[[view1Mock expect] andForwardToRealObject] removeFromSuperview]; 

... something ... 

[view1Mock verify]; 

을 그리고 난 정말 종종 [] andForwardToRealObject] removeFromSuperview 기대 [view1Mock]에 EXC_BAD_ACCESS을받을 수 있나요. 그러나 매번 그런 것은 아닙니다. I'cant가 OCMock의 줄까지 추적하고 매번 발생하지 않기 때문에 상당히 성가시다.

아이디어가 있으십니까?

편집 :

내가 ARC와 새로운 애플 LLVM 3.0 컴파일러가 사용하고 난 그 이유가 될 것 같아요 사용합니다. 그러나 나는 그것을 고치고 싶다. ARC로 OCMock을 컴파일하려 한 사람이 있습니까?

행복을 빌며, 다니엘 'removeFromSurperview'로

+0

: 이러한 오류 및 오류를 수정하는 방법에 대한 단계별 지침을 원인이 무엇에 우수한 링크와 함께 자세한 내용

은 이러한 질문에 대한 답변에서 봐 나는 똑같은 문제를 겪고있다. 간헐적으로 만 발생하며, 나는 당신처럼 UIView를 조롱하고 있습니다. 유일한 차이점은 내 응용 프로그램 코드가 mock 객체를 하위 뷰로 추가하려고 시도 할 때 EXC_BAD_ACCESS가 발생한다는 것입니다. – jaker

답변

1

어쩌면이 메인 스레드에서 실행해야합니다 수, 사용자 인터페이스 방법이다. 당신 가끔EXC_BAD_ACCESS를받을

감사합니다,

1

선은 문제의 원인에 대한 실마리가 될 수 있습니다. 그것은 확실하지 않다. 문제가되는 코드는 다른 곳에있을 수 있습니다.

물론 위의 코드는 정상적으로 보입니다. 얼마 동안 releaseview1에 보내고있는 한.

UI 작업은 주 스레드에서 실행해야합니다. 그러나 이로 인해 EXC_BAD_ACCESS 또는 기타 명시 적 예외가 발생하지 않습니다.

문제의 근본 원인을 찾으려면 먼저 분석기를 실행해야합니다. 그런 다음 계측기에서 누수 도구를 사용하십시오.

finding reason for EXC_BAD_ACCESS - in Xcode4

Random EXC_BAD_ACCESS in a place that it cannot happen