我正在尝试制作一些具有类似属性的SwiftUI视图。因此,我想为其创建一个协议并显示该协议的实例。
protocol SpecialView: View { ... }
struct SpecialViewA : View, SpecialView {
...
var body: some View {
Text("Hello World!")
}
}
struct ContentView: View {
var currentlyDisplayedView: some SpecialView
var body: some View{
currentlyDisplayedView
}
}
//in preview:
ContentView(SpecialViewA())
我希望ContentView接受我的SpecialViewA作为SpecialView。但是,在预览中 “无法将类型'SpecialViewA'的值转换为预期的参数类型'some SpecialView'”。 当尝试显示时,我得到: “ [...]要求'某些SpecialView'必须符合'View'”
我在做什么错?有没有更简单的方法?
答案 0 :(得分:3)
您已经接近...,但这会编译:
from django.db.models import F
Team.objects.filter(
mobateam__moba_tournament=some_tournament
).annotate(
points=F('mobateam__points')
).order_by(
'-points'
)