This error is logged to the console when some part of the code is changing UI items from other threads than the main thread. But how can I find where it does this?
            Asked
            
        
        
            Active
            
        
            Viewed 575 times
        
    1 Answers
14
            Main problem with "This application is modifying the autolayout engine from a background thread" is that it seem to be logged a long time after the actual problem occurs, this can make it very hard to troubleshoot.
I managed to solve the issue by creating three symbolic breakpoints.
Debug > Breakpoints > Create Symbolic Breakpoint...
Breakpoint 1:
- Symbol: - -[UIView setNeedsLayout]
- Condition: - !(BOOL)[NSThread isMainThread]
Breakpoint 2:
- Symbol: - -[UIView layoutIfNeeded]
- Condition: - !(BOOL)[NSThread isMainThread]
Breakpoint 3:
- Symbol: - -[UIView updateConstraintsIfNeeded]
- Condition: - !(BOOL)[NSThread isMainThread]
With these breakpoints, you can easily get a break on the actual line where you incorrectly call UI methods on non-main thread.
 
    
    
        www.jensolsson.se
        
- 3,023
- 2
- 35
- 65
- 
                    Is There a way I can do this in Visual Studio? – user2801184 Jul 26 '18 at 17:31
- 
                    Thank you so much! My app kept logging 3 different "modifying from a background thread" messages but they didn't actually show up until at least 10 seconds later - after a segue to a different ViewController, even though the code there doesn't even actively use background threads. Would you mind posting your answer (or at least linking to it) [here](https://stackoverflow.com/q/28302019/2016165) too? It's the question that shows up as the first search result and people also keep linking to it. I wouldn't have found yours if I hadn't googled `!(BOOL)[NSThread isMainThread]`. – Neph Jun 06 '19 at 15:42
- 
                    Did post it there also now @Neph. – www.jensolsson.se Aug 04 '19 at 10:49
- 
                    Great info, spent hours finding the issue and this pin pointed it for me. Thanks! – Daniel Jul 30 '21 at 00:48