Learn CoreData
let managedObjectContext = AppDelegate.shared().managedObjectContext
//Insert Record
let newItem = NSEntityDescription.insertNewObjectForEntityForName("Location", inManagedObjectContext: managedObjectContext) as! Location
newItem.latitude = 0.0
newItem.longitude = 0.0
newItem.appState = "VC"
newItem.time = NSDate()
do {
try managedObjectContext.save()
} catch {
print(error)
}
//Fetching Record
// Initialize Fetch Request
// // Create Entity Description
// let entityDescription = NSEntityDescription.entityForName("Location", inManagedObjectContext: managedObjectContext)
//
// // Configure Fetch Request
// fetchRequest.entity = entityDescription
do {
let fetchRequest = NSFetchRequest(entityName: "Location")
fetchRequest.predicate = NSPredicate(format: "appState == %@", "VC")
fetchRequest.sortDescriptors = [NSSortDescriptor(key: "appState", ascending: true)]
let result = try managedObjectContext.executeFetchRequest(fetchRequest)
if (result.count > 0) {
let person = result[0] as! NSManagedObject
print("1 - \(person)")
if let longitude = person.valueForKey("longitude"), appState = person.valueForKey("appState") {
print("\(longitude) \(appState)")
}
print("2 - \(person)")
}
} catch {
let fetchError = error as NSError
print(fetchError)
}
//Updating Records
do {
let fetchRequest = NSFetchRequest(entityName: "Location")
let result = try managedObjectContext.executeFetchRequest(fetchRequest)
let person = result[0] as! NSManagedObject
person.setValue(54, forKey: "latitude")
try person.managedObjectContext?.save()
} catch {
let saveError = error as NSError
print(saveError)
}
//Deleting Records
do {
let fetchRequest = NSFetchRequest(entityName: "Location")
let result = try managedObjectContext.executeFetchRequest(fetchRequest)
let person = result[0] as! NSManagedObject
managedObjectContext.deleteObject(person)
try managedObjectContext.save()
} catch {
let saveError = error as NSError
print(saveError)
}