在SwiftUI中,有时可能会遇到无法推断泛型参数标签的问题
struct ContentView: View {
var body: some View {
MyGenericView(item: "Hello, world!")
}
}
struct MyGenericView<T>: View {
var item: T
var body: some View {
Text("\(item)")
}
}
在这个例子中,我们明确指定了MyGenericView
的泛型参数类型为String
。
struct ContentView: View {
var body: some View {
MyGenericView(item: "Hello, world!")
}
}
struct MyGenericView<T>: View {
var item: T
init(item: T) {
self.item = item
}
var body: some View {
Text("\(item)")
}
}
在这个例子中,我们使用了泛型参数标签item
来明确指定泛型参数类型。
protocol MyGenericProtocol {
associatedtype ItemType
var item: ItemType { get }
}
struct ContentView: View {
var body: some View {
MyGenericView(item: "Hello, “world!")
}
}
struct MyGenericView<T>: MyGenericProtocol where T == String {
var item: T
}
在这个例子中,我们使用了关联类型ItemType
来定义泛型参数类型。
领取专属 10元无门槛券
手把手带您无忧上云