我如何在 swift 中调用具有不同值的 es 请求?
这是我的代码:
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)
}
我想获得“docID”的不同值,但我得到了所有实体 :(
感谢您的帮助!
最佳答案
你需要设置
request.resultType = NSFetchRequestResultType.DictionaryResultType
它返回字典,但 distinct 过滤器应该可以工作。
如果您不想走那条路,请在内存中过滤(也推荐)。做一个正常的抓取然后
let distinct = NSSet(array: results.valueForKeyPath("docID") as [String])
我更喜欢 Swift 2.0
let distinct = NSSet(array: results.map { $0.docID })
关于objective-c - Swift 核心数据 - 具有不同结果的请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24432895/