【发布时间】:2018-10-04 20:34:27
【问题描述】:
如何从核心数据中获取不同的值以显示在 UIPicker 中?
我有以下代码。它工作正常,但显示重复的内容:
func CD_Fetch_Value_Database() {
let context = getcontext()
let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "Calculation")
fetchRequest.predicate = NSPredicate(format: "test= %@", cd_test)
fetchRequest.returnsObjectsAsFaults = false
fetchRequest.returnsDistinctResults = true
do {
Value_Database = try context.fetch(fetchRequest) as! [Calculation]
} catch let error as NSError {
let errorDialog = UIAlertController(title: "Error!", message: "Failed to save! \(error): \(error.userInfo)", preferredStyle: .alert)
errorDialog.addAction(UIAlertAction(title: "Cancel", style: .cancel))
present(errorDialog, animated: true)
}
}
谢谢!
【问题讨论】:
-
这几乎是同一个问题:stackoverflow.com/questions/34161786/…
-
您只想在 [Calculation] 上使用 map 来获取值数组(例如标题或其他),然后使用 Set 的便捷 init 创建一个没有重复项的 Set根据定义。
-
不相关:Swift 的惯用样式是驼峰式。以大写字母(马大小写)开头的函数名称是禁忌,使用下划线(蛇形大小写)也是如此。该函数应重命名为
fetchValueFromDatabase()。真的没有必要用“CD”对方法进行伪命名空间 -
@jakehawken 谢谢,我会记住这一点。我还在学习 swift
标签: swift sqlite core-data fetch swift4