Это действительно странно ...
Я запускаю свое приложение, и пока оно открывается, а представления конструируются, я получаю:
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
Я запускал игру много-много-много раз, и я никогда не видел этого, а потом внезапно он выскочил. Странно то, что я не создаю никаких других потоков (о которых я знаю) до тех пор, пока после не будет вызван весь этот код. Мне будет легче отладить это, если кто-то может дать мне некоторое объяснение того, что может быть изменено, когда к нему обращаются в UIView. Может быть, это как-то связано с добавлением чего-либо в представление, в то время как оно уже что-то добавляет? Есть идеи?