Search core data for closest value
目前我们有一个包含多个 r、g、b 值的数据库,这些值被拆分为自己的属性。例如:
1
2 3 |
r = type float
g = type float b = type float |
每个 r、g 和 b 属性将有多个值。
从外部来源获取浮点数后,我们希望搜索数据库以返回与该浮点数最接近的属性。 (例如,对于 r,如果我们得到一个 199 的值,将返回与 199 最接近的 r 值)。
我知道有一些谓词可以像这样使用:
您可以在请求中使用
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
let request1 = NSFetchRequest<NSFetchRequestResult>() // use correct constructor let sortDescriptor = NSSortDescriptor(key:"name_key", ascending: true) let sortDescriptors = [sortDescriptor] request1.sortDescriptors = sortDescriptors let predicate1 = NSPredicate(format:"text < %@", value) let request2 = NSFetchRequest<NSFetchRequestResult>() // use correct constructor let predicate2 = NSPredicate(format:"text > %@", value) |
那么你可以使用两次
第一次使用格式
和
第二次使用
将两次迭代中的第一项和最后一项的差异与您的给定值进行比较,看看谁的差异更小。这将是最接近的值。
如果你不知道如何从核心数据中获取数据,你可以关注 Fetching Objects
核心数据入门
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/268590.html