在Swift中使用Realm进行过滤,给我一个对象数组,但是当打印一个属性时,它会给我一个空字符串
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Swift中使用Realm进行过滤,给我一个对象数组,但是当打印一个属性时,它会给我一个空字符串相关的知识,希望对你有一定的参考价值。
我真的很新问这个地方的问题,对不起我的坏问题。我的问题是我用领域做了一个过滤器,这样做:
let filterIdCategories = realm.objects(CategoriaDestino.self).filter("idCategoria = '\(idCategory)'")
我的结果是:
Results<CategoriaDestino> (
[0] CategoriaDestino {
oID = 1;
idDestino = 1;
idCategoria = 34;
idDirectorio = 0;
},
[1] CategoriaDestino {
oID = 2;
idDestino = 2;
idCategoria = 34;
idDirectorio = 0;
},
[2] CategoriaDestino {
oID = 3;
idDestino = 3;
idCategoria = 34;
idDirectorio = 0;
},
[3] CategoriaDestino {
oID = 4;
idDestino = 4;
idCategoria = 34;
idDirectorio = 0;
}
)
获得这个后,我做了一个像这样的数组:
let filteredIdCategories = Array(filterIdCategories)
当我打印它时,它给了我这个:
[CategoriaDestino {
oID = 1;
idDestino = 1;
idCategoria = 34;
idDirectorio = 0;
}, CategoriaDestino {
oID = 2;
idDestino = 2;
idCategoria = 34;
idDirectorio = 0;
}, CategoriaDestino {
oID = 3;
idDestino = 3;
idCategoria = 34;
idDirectorio = 0;
}, CategoriaDestino {
oID = 4;
idDestino = 4;
idCategoria = 34;
idDirectorio = 0;
}]
但是,目前试图获得如下财产:
filterIdCategories[0].oID
或者任何,它给了我一个空字符串!
我做错了什么?
答案
是的,我没有在我的模型上使用dynamic
关键字!谢谢你们
另一答案
由于你的idCategoria
是一个Int,所以过滤器是错误的。如果是数字,你应该在没有单引号的情况下使用它:
let filterIdCategories = realm.objects(CategoriaDestino.self).filter("idCategoria = \(idCategory)")
以上是关于在Swift中使用Realm进行过滤,给我一个对象数组,但是当打印一个属性时,它会给我一个空字符串的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Realm swift 中过滤为当前日期创建的事件?
使用 Realm 进行 Swift XCTest UI 测试