這實在是奇怪...iPhone UI addSubview引起併發異常
我跑我的應用程序,雖然它是開放和看法正在建設,我得到:
Collection <CALayerArray: 0x124650> was mutated while being enumerated.
代碼trace經歷以下:
main
UIApplicationMain
-[UIApplication _run]
CFRunLoopRunInMode
CFRunLoopRunSpecific
_UIApplicationHandleEvent
-[UIApplication sendEvent:]
-[UIApplication handleEvent:withNewEvent:]
-[UIApplication _runWithURL:sourceBundleID:]
-[UIApplication _performInitilizationWithURL:sourceBundleID:]
-[AppDelegate applicationDidFinishLaunching:]
+[Controller initializeController] //This is my own function
[window addSubview: pauseMenuController.view] //This is the last point of my code it goes through
-[UIView(Hierarchy) addSubview:]
-[UIView(Internal) _addSubview:positioned:relativeTo:]
-[UIView(Hierarchy) _makeSubtreePerformSelector:withObject:]
-[UIView(Hierarchy) _makeSubtreePerformSelector:withObject:withObject:copySublayers:]
-[UIView(Hierarchy) _makeSubtreePerformSelector:withObject:withObject:copySublayers:]
_NSFastEnumerationMutationHandler
objc_exception_throw
我運行遊戲很多,很多,很多次,我從來沒有見過這個,然後突然就彈出。奇怪的是,我沒有創建任何其他線程(我知道),直到之後這個代碼全部被調用。如果有人能夠給我一些關於在UIView中訪問時可能會被修改的解釋,我將更容易進行調試。在添加視圖的同時,它已經添加了一些東西,也許它有什麼關係?有任何想法嗎?
當你得到錯誤時,你能詳細說明應用程序行爲有什麼不同嗎?崩潰...沒有看到...等... – coneybeare 2009-11-10 23:54:06
你能發表一些代碼嗎?調用-addSubview的簡單行爲不會導致這個問題,如果沒有代碼,我們只能盲目猜測。 – 2009-11-10 23:57:53