【发布时间】:2025-12-13 10:50:01
【问题描述】:
这真的很奇怪......
我运行我的应用程序,当它打开并且正在构建视图时,我得到:
Collection <CALayerArray: 0x124650> was mutated while being enumerated.
代码跟踪如下:
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
我已经运行了很多次游戏,但我从未见过这个,然后它突然出现了。奇怪的是,我没有创建任何其他线程(我知道),直到 after 这段代码都被调用。如果有人可以给我一些解释,说明在 UIView 中访问它时可能会被修改的内容,我会更容易调试它。它是否与在视图中添加一些东西有关,而它已经添加了一些东西,也许?有什么想法吗?
【问题讨论】:
-
您能否详细说明出现错误时应用行为的不同之处?崩溃……没有视图……等等……
-
你能发布一些代码吗?调用-addSubview:这个简单的行为不会导致这个问题,没有代码我们只能盲目猜测。
标签: iphone objective-c nsexception