If you want to add Core Data functionalities later on in your project, you can always create a new Data Model file.
→ Note that you would have to paste the AppDelegate.swift file methods needed to use Core Data from somewhere else. (also import CoreData)
( The name of these two also have to match )
Since we now essentially made the same thing as the above swift code, we can safely delete the file.
Also, remember to change the Module of the entity to "Current Product Module", instead of the default "global namespace".
→ It might not be a big problem right now, but once you need to store much more data and have to support multi-threading in your app, this might become an issue.
Class Definition (default)
→ Converts your data, your entities, and your attributes into "classes" and "properties", so you can use them and manipulate them just as you would if you had created a class with these properties.
→ Xcode creates a separate Swift file for you in your project directory. However, you can't open the swift file and add your own code. Xcode will over write it.
→ Least effort needed, quickest to set up and easiest to understand.
Category / Extension
→ You would have to create your classes that are identically named to your entities, and Xcode will automatically link them up to allow you to use Core Data.
→ This may be the option that most developers prefer, because they might want to add some custom code inside.
Manual
→ No linkages, no code generation by Xcode. You have to do all the work yourself.
→ Lease used in practice