2013-10-21 4 views
1

유닛 테스트를위한 또 다른 질문을 할당 할 때 OCTest가 중단 될 수 있습니다. 단위 테스트를 수행하는 내 iOS 프로젝트 중 하나에서 UIWebView를 사용해야합니다. - (void)setUp; 또는 임의의 테스트 메소드에서 하나를 만들면 더 이상의 정보없이 전체 테스트가 중단됩니다. 디버그 네비게이터는 다음을 보여줍니다 : 0 pthread_mutex_lockpthread_mutex_lock을 사용하면 UIWebView가

잠금이나 멀티 쓰레딩과 관련해서는 아무것도하지 않습니다. 나는 같은 오류와 그것을 동기화하려고했습니다. 나는 또한 똑같은 행동으로 완전히 다른 새 프로젝트를 시도했다. 이것은 UIWebview를 할당하려고 할 때만 발생합니다. 나는 UIViews뿐만 아니라 UIViewController 할당하려고했는데 모두 괜찮 았어.

그래서 제 질문은 다음과 같습니다

  1. 왜 이런 일이 발생합니까?
  2. 이 문제는 어떻게 해결할 수 있습니까?

여기 보이는 유일한 방법은 OCMock과 같은 프레임 워크를 사용하여 웹보기를 조롱하는 것입니다. 나는 아직도 내가 시도한 엑스 코드 5도에서 엑스 코드 4에서이 문제가 :하지만 난 ... 내 시험이 방법을 충돌하는 이유를 알고 사전에

감사합니다, Tomte

UPDATE 좋아 OCMock과 모의를 사용하지만 원래 UIWebView의 대리자를 제거하지 못했습니다. 아무도 모범을 모든 대표와 함께 사용하는 경우, 어떻게 말해 ...

답변

0

pthread 뮤텍스를 사용하는 유사한 문제를 검색하는 동안이 스레드를 발견했는데 EXC_BAD_ACCESS + EXC_ARM_DA_ALIGN 중에 충돌했습니다. pthread_mutex_lock(), pthread_mutex_trylock() 등은 iOS 장비 중 일부에 영향을 미쳤지 만 시뮬레이터, 다른 iOS 장비, 심지어 이전 빌드에서도 훌륭하게 작동했습니다. 그것은 시간이 많이 걸리고 매우 좌절스러운 문제이며 궁극적으로 컴파일러 문제 일 수 있습니다.

는 나중에 여기에 해결책을 발견 : http://aleksmaus.blogspot.com/2012/03/excbadaccess-error-with-excarmdaalign.html

는 기본적으로, 당신은 어떤들은 pthread_mutex_t 년대 오히려 지금 그들에 값을 할당하는 것보다, 포인터에 의해 전달되어 있는지 확인해야합니다. 나는 왜 컴파일러가 그걸 망쳐 놓는 지 이해하지 못한다.