Swift:将CoreData作为数组获取

我想要获取sqlite表中的所有保存的数据。

我目前正在这样做:

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

我没有任何问题在Objective-C中获取数据,但在迅速,我没有得到它!

数据的保存工作正常。 我有两行“名称”和“类别”。 我怎样才能显示所有保存的数据?

你应该把所有的对象从CoreData加载到NSManaged对象的数组/字典中。

例如:

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

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

尝试这个:

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