【发布时间】:2021-09-20 11:21:01
【问题描述】:
我有以下代码,单击该按钮可以让我clone repository 位于github 上。
import SwiftUI
import Git
struct File: View {
@State var pathUrl = "https://github.com/way-to-code/git-macOS.git"
@State var nameDir = "/Users/"
func cloneReport() {
DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
let url: URL = URL(string: pathUrl)!
let report = GitRepository(from: url)
//report.delegate = progressTracker
do {
try report.clone(at: nameDir)
} catch let e {
print("Errors \(e).")
}
}
}
var body: some View {
Button(action: {
cloneReport()
}) {
Text("Clone").frame(width: 330)
}
}
}
struct File_Previews: PreviewProvider {
static var previews: some View {
File()
}
}
我正在使用以下framework,它告诉我是否要为跟踪事件实现framework 协议的delegate,我必须这样做:
let progressTracker = MyCustomObject()
let repository: GitRepository
repository.delegate = progressTracker
// implement RepositoryDelegate protocol in order to track the events
extension MyCustomObject: RepositoryDelegate {
func repository(_ repository: Repository, didProgressClone progress: String) {
}
}
我不能做一个不存在的类的extension 给我以下错误:Cannot find type 'MyCustomObject' in scope
是否可以扩展View 类型的struct?
你能给我一些建议吗?
【问题讨论】:
标签: swift xcode macos swiftui delegates