programming in Objective-C reminds me of programming in Java when I was a teenager, where I'd repeatedly get stuck (& get distracted, go do something else) on decisions about what UI class should own some data object as its property, what classes should parent or point at what other classes, what order stuff needs to be initialized in
(often felt like there was no obviously right answer, or it ended up being path-dependent on the history of the project)
adding some new data or behavior, trying to rewire your classes (or add ad-hoc checks) such that everything gets initialized in the right order such that you don't have a NullPointerException, *and* such that you actually have the right data & UI accessible in scope when your behavior needs to hit it
(sometimes you just end up using globals/singletons, sometimes you end up with these circular graphs of parents<->children because you just wanted all the stuff in scope)
a psychological advantage of the Folk/DL 'all data and UI just goes through the reactive database' approach is that you never have to worry about these scope and lifetime and retention questions; if you need something, just query the database at point of use