Swift NSPredicate获取第一个数字

Swift NSPredicate获取第一个数字,swift,core-data,nspredicate,Swift,Core Data,Nspredicate,我正在尝试使用NSPredicate从CoreData获取数据。问题是,我只需要比较实体值的第一位数字: class Foo: NSManagedObject { @NSManaged var value: NSNumber // random number 1xx - 7xx } 我当前的谓词正在比较完整值: NSPredicate(format: "value == %d", 5) 我也尝试过使用.filter来代替,但测试后,它显示在我的情况下,速度是原来的两倍多 问题:

我正在尝试使用
NSPredicate
CoreData
获取数据。问题是,我只需要比较实体值的第一位数字:

class Foo: NSManagedObject {

    @NSManaged var value: NSNumber // random number 1xx - 7xx

}
我当前的谓词正在比较完整值:

NSPredicate(format: "value == %d", 5)
我也尝试过使用
.filter
来代替,但测试后,它显示在我的情况下,速度是原来的两倍多

问题:

我应该如何更改谓词以便它可以比较
值的第一个数字?

我不知道有哪个核心数据谓词可以检查第一个数字 一个数字。对于字符串,可以使用
BEGINSWITH

但如果(在您的案例中)所有数字都有3位数字,则可以为给定范围内的数字创建谓词:

let digit=5//0…9范围内的某个数字

让谓词=NSPredicate(格式:“值>=%ld和值”所有数字是否都有3位数字?然后
NSPredicate(格式:”value>=%d和value@MartinR是的,它们都有3个数字,但我没有正确解释的是,
5
是一个动态数字。它可能介于
0
10
之间。谢谢,我太专注于获取
value
的第一个数字,而没有找到另一种解决方法。
let digit = 5 // some number in the range 0...9
let predicate = NSPredicate(format: "value >= %ld AND value <= %ld", digit * 100, digit * 100 + 99)