When I call the function CacheStation I get the error: CoreData: error: Failed to call designated initializer on NSManagedObject class SaveModel. Nothing more nothing less. How
Here's what happens:
let sm = SaveModel(); you are creating a new instance of SaveModel.SaveModel is a subclass of NSManagedObjectNSManagedObject has a designated initializer called init(_: insertIntoManagedObjectContext:)You need to either call the NSManagedObject designated initializer or create your own designated initializer that calls the superclass designated initializer.
This line:
let sm = SaveModel();
uses the standard init() method to create an instance of SaveModel, but NSManagedObjects must be initialised using the designated initialiser:
init(entity entity: NSEntityDescription, insertIntoManagedObjectContext context: NSManagedObjectContext?)
(or, as in your CacheStations method, using NSEntityDescription.insertNewObjectForEntityForName(_, inManagedObjectContext: moc) which calls the designated initialiser).
Since it seems sm is created only to have an instance on which to call CacheStations, I would change that method to a class method:
class func CacheStations(){
and change your saveShizzle method to use the class method:
@IBAction func saveShizzle(sender: AnyObject) {
SaveModel.CacheStations();
}