gpt4 book ai didi

ios - 如何将 realm.objects(SomeObject.self).filter() 传递给需要 Results 的函数
转载 作者:行者123 更新时间:2023-11-28 07:55:44 24 4
gpt4 key购买 nike

这个问题结合了RealmSwift Cannot cast Results<SomeOjbect> to Results<Object>

我有一个像这样的 Realm 对象:

import RealmSwift
class SomeObject: Object
{
@objc dynamic var datetime = ""
@objc dynamic var city = 0

convenience init(city: Int, datetime: String)
{
self.init()
self.city = city
self.datetime = datetime
}
}

有一个框架:https://github.com/danielgindi/ChartsRealm ,它从 Realm 中提取数据并绘制图表。该框架是用 Swift 编写的,也可以在 Objc 中使用,所以它结合了 RLMObjectObject类型。

它的功能如下:

public convenience init(results: Results<Object>?, xValueField: String?, yValueField: String, label: String?)

需要Results<Object>? ,但是我无法得到我的过滤结果 Results<Object>类型。例如

realm.objects(SomeObject.self).filter("city=0")

Results<SomeObject> , 并且不能转换为 Results<Object> ,描述于 RealmSwift Cannot cast Results<SomeOjbect> to Results<Object>

我该如何解决?

因为ChartsRealm框架中的demo,它只是从+ (RLMResults *)allObjectsInRealm:(RLMRealm *)realm;中读取Realm中的所有对象,但在现实世界中,我们通常需要先对结果进行过滤。

如果真的无能为力,我可以接受修改框架功能参数,为框架提交pull requests,只是让它工作。

最佳答案

Results<Object>作为类型没有任何意义,ChartsRealm 中的方法应该是采用 Results<T> 的通用方法.

因为在这种特定情况下,ChartsRealm 对 Results<Object> 所做的一切正在使用ObjectiveCSupport.convert()得到 RLMResults , 一个 unsafeBitCast()Results<Object>应该工作正常。您也可以直接调用 ObjectiveCSupport.convert()自己并通过 ChartsRealm a RLMResults而不是 Swift Results对象。

关于ios - 如何将 realm.objects(SomeObject.self).filter() 传递给需要 Results<Object> 的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48127765/

24 4 0