I just noticed a new section on mmalc’s very helpful “Cocoa Bindings Examples and Hints”:
I have personally found this very confusing when I’ve used bindings in my projects. The problem arises when you’ve got application model data stored in some “free” data structure like a dictionary or array. The model data can be manipulated quite handily with standard UI and array controllers, but what about cluing the rest of your application into the change? I find the problem of “bottom-up” observing with deeply nested data models to be one of the hardest problems with bindings, both conceptually and practically.
To me, mmalc’s explanation just confirms what I thought was true: bindings kind of sucks for nested “pure” models. There often must be some custom code associated with your model, or else you’ll have to jump through hoops to observe the changes in the data from some higher altitude.
I’m not sure what Apple should do to make it better, but I hope they do it. Or is my desire to store everything in dictionaries and arrays just a flaw in my thinking? Maybe I’m asking for too much.