gpt4 book ai didi

swift - Realm 对象的通用集合

转载 作者:行者123 更新时间:2023-11-30 13:01:30 25 4
gpt4 key购买 nike

我们发现我们的项目有很多围绕基本 ListView Controller 的 Realm 对象集合的重复/样板代码,并且想知道是否有一些通用容器可以将它们封装在其中。

似乎 AnyRealmCollection 与该概念隐约相关,我发现了这个 old/spuriously sourced link还有这个stackoverflow post它基本上完全符合我的要求,但该语法肯定不再有效。我的目标基本上如下(请原谅我的伪代码)

class ParentController: UITableViewController {
var dataSource: GenericRealmCollection!
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return dataSource.count
}
}

class ChildController: ParentController {
func viewDidLoad() {
dataSource = realm.objects(MyModel.self).filter(...)
}
}

我猜有一些我不完全理解的快速类型删除功能可以适应这种情况,但我整个下午都在玩它,但没有取得太大进展。

更新 1

看起来 AnyRealmCollection 绝对不是我基于 @kishikawa-katsumi 所期待的的解释。正如我在评论中提到的,这样做会强制使用类泛型,这确实限制了与 Obj-C 的互操作性。我的希望是完全删除该类型(或者至少返回到Object,然后在需要对象时使用辅助函数来转换为正确的类型。看起来这可能是不可能的。

最佳答案

AnyRealmCollection<T>按以下方式使用。

class ParentController<T: Object>: UITableViewController {
var dataSource: AnyRealmCollection<T>!
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return dataSource.count
}
}

class ChildController: ParentController<MyModel> {
override func viewDidLoad() {
super.viewDidLoad()
dataSource = AnyRealmCollection(realm.objects(MyModel.self))
}
}

关于swift - Realm 对象的通用集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39863680/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com