Fine. SOMEONE wants me to tell YOU what it means...
Managed Objects is a data model management system that does a lot of the work for you. In major part, if you can see the example, you can allow various patterns to be developed. Although this is a primitive version, it encompasses major features of Core Data Models.
In basic terms... This is a VERY generic code that can be used for anything: from muds to party systems to even banks...
First... There are four files: Managed Object Context, Managed Objects, Simple Managed Objects, and Entities...
Let start with the simple version. Simple Managed Objects is a simplified version of Managed Objects: It doesn't have a majority of the functions that Managed Objects have... But it is a lot easier to work with!
The Simple Managed Objects _are_ key-value associations. The only implementation that goes so far as to worthy a notice is that... When you alter a value, it sends a notification... ( Oh yea... This uses libnotice, provided at
http://forums.graalonline.com/forums...ad.php?t=73780 ) In other forms, it relays messages with KeyPaths...
KeyPaths are when you use multiple managed objects... If you give a variable a value of another simple managed object, you can access the variables from it by using keypaths. ( For instance, in the example provided, members in a party are a part of the rank. To get the members, you can use the keypath to get them! valueForKeyPath( "Ranks.Members" ) ).
Managed Object Context has more limitations, but these allow it to have better abilities to manage.
In the example provided, we have Ranks that link to Party, and Party that links Ranks... So when you set the Party of a Rank, it INSTANTLY adds it to the corresponding key on the Party managed object. ( As you can see from the example, when I set the value of Party in the object, I can access the Ranks members through the ranks variable... Even if I never touched it! )
This implies that as soon as you remove anything from one side, it affects instantly the next. For this to work, however, you need a model to fix these variables to. This is where Entities come into place. Entities are like maps to Managed Objects. They dictate whether it's an array or not ( "ToMany" means it's an array! ), whether it has an inverse relationship ( "inverse" provides the key to the relationships corresponding key )... There's also Delete Rule... That implies that if you delete the Party for instance, what rule it should do to it's attached variables. By default, it just removes them. But by making it "Cascade", it'll delete the ranks as well. ( This allows for better management and less overhead! ).
Managed Object Context is like the big boss... What it does is manage entities. => Creates, Deletes, and loads.
Entities manages the Managed Objects... Creates, Deletes, Load...
Managed Objects manages relationships between Managed Objects... add/remove/set...
Simple Managed Objects manages the key-value's.