我试图创建一个Swift Package,它基本上是一个单一的SwiftUI视图。我在此处创建了一个示例来展示正在发生的事情。包的功能并不重要,我只是在View中包含了一些@State和@Binding变量,以便我能够获得与我的真实Package相同的错误。 View结构如下。
import SwiftUI
public struct SampleView: View {
@Binding var myNum:Int
@State var fixedText:String = ""
var myText = ""
var optional: String?
public var body: some View {
VStack {
if optional != nil {
Text(optional!)
}
Text(myText)
Text("Parent number: \(myNum)")
Text("\(fixedText)")
Button("Increment num") {
self.myNum += 1
}.foregroundColor(.blue)
Button("Change Parent Text") {
self.fixedText = "Only Changes Child"
}.foregroundColor(.blue)
}.background(Color.red)
.foregroundColor(.white)
}
}
当我将包添加并导入到我的项目中的一个视图中时,我应该能够像在不包含Swift Package的情况下一样使用“这样做”(Do something like this)。
SampleView(myNum: $myNum,
fixedText: parentText,
myText: "Display Text Passed from parent")
然而,我没有代码自动补全功能,而且出现了以下错误:
'SampleView' initializer is inaccessible due to 'internal' protection level
我尝试了各种SampeView结构体的初始化方式,但一直遇到各种不同的错误。我不理解如何修复这里的访问级别问题。有人可以帮忙吗?此处也附有截图。