OVERVIEW
This is probably an extremely dumb/simple question, but it seems to be throwing me through a loop. I have created a NSManagedObject subclass for my entity "UsedInfo" per the advice of my fellows on StackOverflow. My ultimate goal is to use this subclass to send User information to CoreData, and later retrieve it.
THE ISSUE
The issue is that i cannot figure out how to use my new file, "UsedInfo+CoreDataProperties.swift", with my "ViewController.swift" file, which is where my TextFields are connected. Below you'll find the relevant code.
Code for ViewController.swift (SaveButton)
@IBAction func saveButton(sender: AnyObject) {
let appDel: AppDelegate = (UIApplication.sharedApplication().delegate as! AppDelegate)
let context:NSManagedObjectContext = appDel.managedObjectContext
let managedContext:NSManagedObjectContext = appDel.managedObjectContext
let entity1 = NSEntityDescription.insertNewObjectForEntityForName("UsedInfo", inManagedObjectContext:context) as NSManagedObject
let one = pickerTextField.text
let two = modelName.text
let three = serialNo.text
let four = YOM.text
let five = engineHours.text
let six = locationOfMachine.text
entity1.setValue(one, forKey: "product")
entity1.setValue(two, forKey:"modelName")
entity1.setValue(three, forKey:"serialNo")
entity1.setValue(four, forKey:"yom")
entity1.setValue(five, forKey:"engineHours")
entity1.setValue(six, forKey:"location")
print(entity1.valueForKey("product"))
print(entity1.valueForKey("modelName"))
print(entity1.valueForKey("serialNo"))
print(entity1.valueForKey("yom"))
print(entity1.valueForKey("engineHours"))
do {
try context.save()
}
catch {
print("error")
}
}
Code for "UsedInfo+CoreDataProperties.swift"
import Foundation
import CoreData
extension UsedInfo {
@NSManaged var engineHours: String?
@NSManaged var location: String?
@NSManaged var modelName: String?
@NSManaged var product: String?
@NSManaged var serialNo: String?
@NSManaged var yom: String?
}
Code for "UsedInfo.swift"
import Foundation
import CoreData
class UsedInfo: NSManagedObject {
//Insert code here to add functionality to your managed object subclass
}
I thank you folks in advance. I'm sorry for my utter noob-ness.
Since you created a subclass of NSManagedObject
, you can use that subclass without any special steps to "connect" it. It's ready, and it can do anything defined by NSManagedObject
as well as anything added in the new subclass.
With Core Data you'd start by changing the code that creates a new instance to be something like
let entity1 = NSEntityDescription.insertNewObjectForEntityForName("UsedInfo", inManagedObjectContext:context) as NSManagedObject as! UsedInfo
The call to insertNewObjectForEntityForName(_:inManagedObjectContext:)
will create an instance of UsedInfo
, but you need to add the as! UsedInfo
to make it clear that's what you're getting. Using as!
can be dangerous but it's not a bad idea here, because if this downcast fails, you want to know immediately so that you can fix your managed object model.
After that, entity1
is an instance of your new UsedInfo
class. You can use the properties declared on UsedInfo
in the code below. For example,
entity1.product = one