2012-03-05 38 views
0

隨機我在Monotouch 5.2.6和SGen被啓用的iOS5模擬器中得到了下面的崩潰。這是一個調試版本。 單擊按鈕後發生。該點擊會關閉一個顯示進度指示器的新線程。當它完成思考時,它將用動畫交換兩個視圖(在UI線程上運行所有這些)。有人可以理解在SGen上發生的Monotouch 5.2.6中的崩潰嗎?

我想知道從哪裏開始,因爲我沒有得到託管堆棧跟蹤。我是對,它試圖佈局不再存在的UITableViewCell?

Native stacktrace: 

    0 MobileApp     0x00094fbc mono_handle_native_sigsegv + 284 
    1 MobileApp     0x0000be72 mono_sigsegv_signal_handler + 178 
    2 libsystem_c.dylib     0x9c5ee59b _sigtramp + 43 
    3 ???         0xffffffff 0x0 + 4294967295 
    4 QuartzCore       0x04176891 -[CALayer actionForKey:] + 89 
    5 QuartzCore       0x0417982d _ZL12actionForKeyP7CALayerPN2CA11TransactionEP8NSString + 82 
    6 QuartzCore       0x0417c9c3 _ZN2CA5Layer12begin_changeEPNS_11TransactionEjRP11objc_object + 131 
    7 QuartzCore       0x04181f82 _ZN2CA5Layer12set_positionERKNS_4Vec2IdEEb + 388 
    8 QuartzCore       0x04178205 -[CALayer setPosition:] + 68 
    9 QuartzCore       0x04177cba -[CALayer setFrame:] + 675 
    10 UIKit        0x021d8590 -[UIView(Geometry) setFrame:] + 198 
    11 UIKit        0x022e1731 -[UILabel setFrame:] + 233 
    12 UIKit        0x02439731 -[UITableViewCellLayoutManager layoutSubviewsOfCell:] + 4511 
    13 UIKit        0x02390e34 -[UITableViewCell layoutSubviews] + 2650 
    14 UIKit        0x021e3322 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 178 
    15 CoreFoundation      0x011d6e72 -[NSObject performSelector:withObject:] + 66 
    16 QuartzCore       0x0417392d -[CALayer layoutSublayers] + 266 
    17 QuartzCore       0x0417d827 _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 231 
    18 QuartzCore       0x04103fa7 _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 377 
    19 QuartzCore       0x04105ea6 _ZN2CA11Transaction6commitEv + 374 
    20 QuartzCore       0x041059d3 _ZN2CA11Transaction14release_threadEPv + 65 
    21 libsystem_c.dylib     0x9c5dfe0c _pthread_tsd_cleanup + 85 
    22 libsystem_c.dylib     0x9c59864c _pthread_exit + 146 
    23 libsystem_c.dylib     0x9c5989a0 pthread_exit + 33 
    24 MobileApp     0x0020434e thread_exit + 30 
    25 MobileApp     0x00203d03 thread_start_routine + 163 
    26 MobileApp     0x001aeb20 gc_start_thread + 80 
    27 libsystem_c.dylib     0x9c596ed9 _pthread_start + 335 
    28 libsystem_c.dylib     0x9c59a6de thread_start + 34 
+0

不知道它是在嘗試佈置一些東西......對我來說,它似乎訪問某些代表無處...線程究竟在幹什麼?是否有機會創建或處理一些UI對象? – Yahia 2012-03-05 13:39:33

+0

沒有明確的處置。是的,它正在生成UI對象。它將從屏幕上刪除控制器及其視圖並添加另一個控制器。 – Krumelur 2012-03-05 14:24:55

+0

我懷疑按鈕單擊和UI線程產生的線程之間進行交互時出現了一些問題......但是很難從單獨的堆棧跟蹤中收取... – Yahia 2012-03-05 15:20:11

回答

0

原生代碼試圖訪問已被釋放的東西。

這是關鍵線路:

4 QuartzCore       0x04176891 -[CALayer actionForKey:] + 89 

你需要弄清楚什麼[CALayer的actionForKey:]試圖做(和其對象) - 必須記住,這可能是許多事情(調用委託/事件,調用虛擬方法,獲取屬性)。然而,如果沒有看到您的實際代碼,它就很難具體。

相關問題