RaviMalviya
12/29/2015 - 11:58 AM

Learn CoreData

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)
        }