在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 测试

如何在 Realm Swift 中更新对象

Realm Swift 使用部分更新 collectionView

如何在 Realm Swift 中使用 NOT IN

从 Realm 数据库中检索单个对象的正确方法