And that's the problem. Potential OOM issues. Did you notice that "potential" keyword?
Just found out that my application didn't work as expected in real device - because there wasn't any "out of memory" situations! UIViewController didn't get killed, thus it wasn't recreated next time from scratch! Boom - app crashed!
"Always test in real device" is as old phrase as the whole software industry. I do that, using as old, slow, poor, cheap, worn-out, crappy, memory limited, CPU challenged, disk stuffed hardware and environment as possible. Yes, I do remove SIM card, while app is running. And eject memory card, while app is streaming 10GB video on it. And put mobile phone in sink to harm signal reception. And try to write 1000000 character long username in registration field. Love crashing unsuspecting apps. 10+ years as (undisclosed) subcon taught me well that Mobile. App. May. Not. Crash. Ever. No. Matter. What.
(That was before excel-sheet pushing bean counters invented far-shore outsourcing. Before apps started crashing. Occasionally).
Somehow my subconscious has started to pre-optimize that hardware testing phase by trying to catch bugs that I KNOW will be found by trying to emulate the crappy hardware in development environment.
Never pre-optimize. Never over-optimize. Never guess-optimize.
The problem is... WHAT IF there is no problem? What if everything just works as it's supposed to work? What if your code, which can handle all the things that can go wrong, cannot handle a situation, when things don't get wrong!