目标是从Realm获取对象,该对象在其属性之一中包含最高的数字值。该对象具有人员名称(字符串)和person_id(也是字符串)。
PersonClass: Object {
@objc dynamic var name = ""
@objc dynamic var person_id = ""
}
person_id可以是数字,字符串或组合。对于此过滤器,所有不只包含数字的字符串都应被忽略。桌子可能看起来像这样
name person_id
Henry 0000
Leroy test
Frank 3333
Steve a123
结果应该是
Henry 0000
Frank 3333 <- .last or the highest
举个简单的例子,让我们看一下这个数组
let arrayOfWords = ["thing","1","stuff","2"]
和一些代码来获取字符串“ 1”和“ 2”。
let swiftResults = arrayOfWords.compactMap { Int($0) } //knowing that Int has limitations
swiftResults.forEach { print($0) } //note we can use .last to get the last one
虽然可以通过获取所有Realm对象然后应用Swift过滤器来解决,但问题是可能有成千上万的人,并且一旦将结果对象作为Swift枚举对象(如数组)进行操作,就不会只是断开了与Realm的连接(失去了对象的实时更新功能),但它们不再被延迟加载,占用了内存并可能使设备不堪重负。