Using Version 8.1 of Xcode.
Create an entity named \"MapRegionObject\" in .xcdatamodeld file.
Using auto code generator, click Editor on the navigation bar -
This isn't an answer. It's just explanation of what's going on with the selections
Below is a transcript I wrote myself (It's not 100% accurate):
The default is
class definition, if you choose this one. It will generate that subclass and it will just work. You'll be able to access your tweets as a class called Tweet. This sounds good. Btw if you do this it will NOT show up in your file navigator.The one we choose the most often is the
category/extensionwhat this will do it will only generate an extension of the Tweet class. You have to actually write the tweet class itself. The extension will take care of making all the vars. Even when I switch to category/extension again I don't get that extension showing up in the navigator. It's kind of hidden from you.And why do we like this one? Because a lot of times we want to add our own code. Like in a Tweet, imagine you want to add a static method that took data from Twitter and turned it into a tweet in the database. Where would we put code? Well a great place to put that code would be in the Tweet class...if there was such a thing...and the extension is going to handle all the var business for you.
If you did choose
manual/nonefor codegen. meaning don't do any codegen, then you would be doingvalue/setValue(forKey:)...good luck with that You're code is going to be a mess. [ie there is no.propertyName = value...you'd had to dosetValue(value, forKey: propertyName)].
Long story short, I'm not sure why but for some reason if you don't select the create NSManagedObject subclass then it seems to still work, but without showing what's happening under the hood. Very counter intuitive!
Now we know we want to access all this stuff not using value/set(value:forKey:)...we want to have to subclasses of Users/Tweets. And we want to have vars [ dot notation] for all these relationships so we need that code to be generate. The way we do that we just select the entity... and we go down here to CodeGen. This says by default class definition. That means it's done it. It has generate a class called Tweet. and It's going to work with var and all relationships. That's not actually what we want. We want to select this one [Category/Extension]. Where only create an extension to Tweet and add the var stuff. That's because we want to write the class Tweet and put our own code in there. It's very common to write our own class. But you still want the var magic.