2013-10-21 58 views
1

只是單元測試的另一個問題。在我進行單元測試的iOS項目中,有必要使用UIWebView。當我在- (void)setUp;或任何測試方法中創建一個時,整個測試崩潰時沒有任何進一步的信息。調試導航器只顯示:0 pthread_mutex_lockpthread_mutex_lock讓OCTest崩潰時UIWebView分配

我根本不用做任何鎖或多線程處理。我試圖用同一個錯誤來同步它。我也嘗試了一個完全不同的,具有相同行爲的新項目。只有當我嘗試分配一個UIWebview時纔會發生這種情況。我試圖分配UIViews以及UIViewController,一切都很好。

所以我的問題是:

  1. 爲什麼會出現這種情況?
  2. 我該如何解決這個問題?

我在這裏看到的唯一方法是使用像OCMock這樣的框架來模擬Web視圖。但我想知道爲什麼我的測試崩潰這樣...提前

感謝,Tomte

UPDATE: 我還是有這個問題在Xcode 5以及在Xcode 4我試着使用OCMock模擬,但我沒有擺脫原始UIWebView的委託。如果任何人有一個例子如何使用與所有代表模擬,然後隨時告訴我...

回答

0

我發現這個線程,同時尋找類似的問題,其中使用pthread mutexes崩潰與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的是通過指針傳遞,而不是以往任何時候都做對他們賦值。我不明白爲什麼編譯器將這個問題搞砸了,但事實就是這樣。