我想在Swift中过滤Realm结果,只获取以字母字符开头的记录。 使用Realm Swift版本2.4.2
最初的想法是使用带有正则表达式的MATCHES
谓词字符串
var predicate = NSPredicate(format: "firstName MATCHES '^[a-z].*'")
let realm = try! Realm()
realm.objects(Friend.self).filter(predicate)
但是,对于Realm过滤使用MATCHES
谓词会导致应用程序崩溃:
libc ++ abi.dylib:以未捕获的类型异常终止 NSException
它适用于BEGINSWITH
,但为此,所有字符都应为“OR”编辑:
var predicate = NSPredicate(format: "firstName BEGINSWITH[c] 'a' OR firstName BEGINSWITH[c] 'b' OR ... OR firstName BEGINSWITH[c] 'z'")
Realm文档告知过滤器支持MATCHES
- https://realm.io/news/nspredicate-cheatsheet/
所以问题是:在Realm Swift上以字母字符开头过滤Realm结果的最佳方法是什么?