Swift: fetching CoreData as an array

I want to get all saved data in sqlite table.

I am currently doing this:

func GetAllData() -> NSArray { var error : NSError? = nil; var request : NSFetchRequest = NSFetchRequest(entityName: "Locations"); let result : [AnyObject] = managedObjectContext!.executeFetchRequest(request, error:&error)!; var elements : NSMutableArray = NSMutableArray(); for fetchedObject in result { elements.addObject(fetchedObject[0]); } print(elements); return elements; } 

I have no problem retrieving data in Objective-C, but in swift I don't get it!

Saving data is working fine. I have two lines: "Name" and "Category". How to show all saved data?

+6
source share
4 answers

You must load all objects from CoreData into Array / Dict from NSManaged Objects.

Example:

 var locations = [Locations]() // Where Locations = your NSManaged Class var fetchRequest = NSFetchRequest(entityName: "Locations") locations = context.executeFetchRequest(fetchRequest, error: nil) as [Locations] // Then you can use your properties. for location in locations { print(location.name) } 
+21
source

Try the following:

 let fetchRequest = NSFetchRequest(entityName: "Locations") do { let results = try managedObjectContext.executeFetchRequest(fetchRequest) let Locations = results as! [Locations] for location in Locations { println(location) } } catch let error as NSError { print("Could not fetch \(error)") } 
+5
source

Swift 3

 func fetchData(){ onlyDateArr.removeAll() let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "PhotoData") do { let results = try context.fetch(fetchRequest) let dateCreated = results as! [PhotoData] for _datecreated in dateCreated { print(_datecreated.dateCreation!) onlyDateArr.append(_datecreated) } }catch let err as NSError { print(err.debugDescription) } } 
+5
source
 import UIKit import CoreData class CoreDataHandler: NSObject { private class func getContext() -> NSManagedObjectContext { let delegate = UIApplication.shared.delegate as? AppDelegate return (delegate?.persistentContainer.viewContext)! } class func saveObeject (name:String,roll:String,college:String) { let context = getContext() let entity = NSEntityDescription.entity(forEntityName: "CountryInfo", in: context) let manageObjet = NSManagedObject(entity: entity!, insertInto: context) manageObjet.setValue(name, forKey: "name") manageObjet.setValue(roll, forKey: "roll") manageObjet.setValue(college, forKey: "college") do { try context.save() }catch { print("unable to save data") } } class func getCountryDetail(name:String) ->Array<Any>? { // return "http://1.bp.blogspot.com/-J9emWhBZ_OM/TtQgVQmBHRI/AAAAAAAAD2w/j7JJMRMiuAU/s1600/Al_Ain_FC.png" let contecxt = getContext() let fetchRequest:NSFetchRequest<CountryInfo> = CountryInfo.fetchRequest() var user:[CountryInfo] = [] let predicate = NSPredicate(format: "name LIKE[cd] %@",name) fetchRequest.predicate = predicate do{ user = try contecxt.fetch(fetchRequest) let ClubInfoBO = user print(ClubInfoBO) return (ClubInfoBO) as? Array<Any> }catch { return nil } } class func deleteObject(user:CountryInfo) ->Bool{ let context = getContext() context.delete(user) do { try context.save() return true }catch{ return false } } //Clean delete class func cleanDelete () ->Bool { let context = getContext() let delete = NSBatchDeleteRequest(fetchRequest: CountryInfo.fetchRequest()) do{ try context.execute(delete) return true }catch { return false } } } 
0
source

Source: https://habr.com/ru/post/977117/


All Articles