无法在SwiftUI中将带有页眉/页脚的节添加到列表中
我已经对SwiftUI进行了一些修补,但是编译器显示的一些错误有点难以表达,并且在我刚开始的时候很难理解 我正在建立一个包含最新Xcode版本的列表,其中包含以下部分:无法在SwiftUI中将带有页眉/页脚的节添加到列表中,swiftui,Swiftui,我已经对SwiftUI进行了一些修补,但是编译器显示的一些错误有点难以表达,并且在我刚开始的时候很难理解 我正在建立一个包含最新Xcode版本的列表,其中包含以下部分: public struct DatasetView: View { public init() {} @ObservedObject var viewModel = DatasetViewModel() public var body: some View { List(viewM
public struct DatasetView: View {
public init() {}
@ObservedObject var viewModel = DatasetViewModel()
public var body: some View {
List(viewModel.directories) { folder in
Section(header: Text("Section")) { // <-- Error here
Text(folder.path)
}
}.navigationBarTitle("Dataset")
.listStyle(GroupedListStyle())
.environment(\.horizontalSizeClass, .regular)
}
}
我在文档中搜索并检查了使用相同语法的博客帖子,但我在这里迷路了。怎么了
编辑:添加了DatasetViewModel
public class DatasetViewModel: ObservableObject {
@Published var directories: [Directory] = []
init() {
search()
}
func search() {
let docsPath = Bundle.main.resourcePath!
let urls = Bundle.main.urls(forResourcesWithExtension: nil, subdirectory: "dataset/train")
var aux: [Directory] = []
urls?.forEach({
aux.append(Directory(path: $0.pathComponents.last! ))
print($0.pathComponents.last)
})
aux.sort(by: < )
directories = aux
}
}
公共类DatasetViewModel:ObserveObject{
@已发布的变量目录:[目录]=[]
init(){
搜索()
}
func搜索(){
让docsPath=Bundle.main.resourcePath!
让URL=Bundle.main.URL(对于资源扩展:nil,子目录:“dataset/train”)
var aux:[目录]=[]
URL?.forEach({
append(目录(路径:$0.pathComponents.last!))
打印($0.pathComponents.last)
})
辅助排序(按:<)
目录=辅助
}
}
public struct目录:可识别、可比较{
公共静态函数<(左:目录,右:目录)->Bool{
返回左侧路径<右侧路径
}
公共变量id=UUID()
公共变量路径:字符串
}
我们可以看看你的数据集视图模型吗
?我的错,添加了它!和目录
(如果可能)。我假设它符合可识别的?是的,它符合。我的问题出现在视图的部分
中,我想可能是因为代码中有一个名为“Section”的类或结构?这就是我得到的,我得到了一个类似的错误信息。如果不想更改类或结构的名称,可以将swiftUI节前置为swiftUI.section(或至少将其用于测试)。我们是否可以查看您的DatasetViewModel
?我的错,添加了它!和目录
(如果可能)。我假设它符合可识别的?是的,它符合。我的问题出现在视图的部分
中,我想可能是因为代码中有一个名为“Section”的类或结构?这就是我得到的,我得到了一个类似的错误信息。如果不想更改类或结构的名称,可以将swiftUI节前置为swiftUI.section(或者至少将其用于测试)。
public class DatasetViewModel: ObservableObject {
@Published var directories: [Directory] = []
init() {
search()
}
func search() {
let docsPath = Bundle.main.resourcePath!
let urls = Bundle.main.urls(forResourcesWithExtension: nil, subdirectory: "dataset/train")
var aux: [Directory] = []
urls?.forEach({
aux.append(Directory(path: $0.pathComponents.last! ))
print($0.pathComponents.last)
})
aux.sort(by: < )
directories = aux
}
}
public struct Directory: Identifiable, Comparable {
public static func < (lhs: Directory, rhs: Directory) -> Bool {
return lhs.path < rhs.path
}
public var id = UUID()
public var path: String
}