Realm没有用空格查询string字段
我在我的数据源中有这样的function:
func getAllFood(by type: String) -> [UserFoodInformation] { var findedFood = [UserFoodInformation]() findedFood.append(contentsOf: baseUserFoodDataSource.getAllFood(by: type)) let predicate = NSPredicate(format: "foodType == %@", type) let resultOfSearching = dataBase.objects(AddedUserFood.self).filter(predicate).sorted(byKeyPath: "name") for searchedFood in resultOfSearching { findedFood.append(searchedFood) } return findedFood }
当我尝试查询包含空白的string时,我没有结果,但如果我用简单的单词参数查询,一切都很好。 这是为什么? 我可以在Realm中有一个由多个单词组成的string字段吗?
您正在使用的谓词是查找其foodType
属性等于传入的stringtype
对象。只有属性完全等于该string的那些对象才会匹配。 如果你想执行一些其他forms的匹配,你需要使用除了相等运算符之外的东西。 BEGINSWITH
, CONTAINS
, ENDSWITH
和LIKE
是Realm在string字段上支持的比较运算符。
我可以在Realm中有一个由多个单词组成的string字段吗?
string字段可以包含任何string值。 支持的比较运算符不具有“单词”的概念,所以如果要使用该概念进行过滤,则可能需要您做进一步的工作。 根据您的使用情况,我可以看到几种方法:
-
使用
CONTAINS
查找foodType
属性包含给定type
string的任何对象。 -
将stringparsing为存储在模型中的结构化数据。 例如,为
foodType
属性存储List<FoodType>
而不是String
是foodType
。
有可能还有其他的select,但是它们取决于你试图达到什么的细节。