how I can call es request with distinct values in swift?
This is my code:
let appDelegate: AppDelegate = UIApplication.sharedApplication().delegate as AppDelegate
let context: NSManagedObjectContext = appDelegate.managedObjectContext
let request = NSFetchRequest(entityName: "MedicalData")
request.propertiesToFetch = NSArray(object: "docID")
request.returnsObjectsAsFaults = false
request.returnsDistinctResults = true
var results:NSArray = context.executeFetchRequest(request, error: nil)
for data in results {
var thisData = data as MedicalData
println(thisData.docID)
}
I want to get distinct values for "docID" but I get all of the entity :(
Thank your for help!
You need to set
request.resultType = NSFetchRequestResultType.DictionaryResultType
It returns dictionaries, but the distinct filter should work.
If you do not want to go down that route, filter in memory (also recommended). Do a normal fetch and then
let distinct = NSSet(array: results.valueForKeyPath("docID") as [String])
With Swift 2.0 I prefer
let distinct = NSSet(array: results.map { $0.docID })