objective-c - Swift 核心数据 - 具有不同结果的请求

标签 objective-c sqlite core-data swift nsfetchrequest

我如何在 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/

相关文章:

iphone - 在 UIWebView 中添加 UIButton

objective-c - 如何不让 NSSearchField 卡住?

objective-c - 在 Xcode 中为 iPad 指定图像,例如为 iPhone 4 指定 @2x

mysql - 查看是否存在两个表行,内部连接到另一行

python - 如何使用 web.py 安装 Python 时附带的 sqlite3 版本?

python - 如何使用 python 在 sqlite3 中存储时区感知时间戳?

swift - 如何(优雅地)将 Swift 枚举与关联值持久化——或者我应该避免它们?

ios - UIWebView - 删除加载指示器,在图像下载完成之前,但在呈现 webView 之后

ios - Swift SourceKitService 崩溃

ios - RestKit 映射嵌套属性失败