目标
- 实现针对不同数据结构的自动分页
- 能够自定义界面效果
实现路径
需要用到Swift语言的高级特性Generics(范型)。Generics可以让我们的项目变得灵活,避免重复编写相同的代码,并以清晰抽象的方式提供代码表达力。
遇到问题
- 如何通过参数给范型初始化
U.init(item: item.getShowDict())
U是一个范型,通过协议实现了init,通过where明确了U是个View
- 协议如何用范型
protocol PageModelProtocal:Identifiable{
associatedtype T
static func row_page() ->[T]
// 获取下一页
var id:UUID { get set }
var name:String { get set }
func next() ->[T]
func getShowDict() ->[String:Any]
}
可以用associatedtype来解决
