Swift playground 如何在Swift中更改结构属性
我正在尝试Swift操场,但我找不到改变结构值的方法。下面我想更改默认值的阴影属性 我已经尝试过初始化器和点语法,但由于内部保护级别的原因,“我得到”字段不可访问Swift playground 如何在Swift中更改结构属性,swift-playground,swift5,ipad-playgrounds,Swift Playground,Swift5,Ipad Playgrounds,我正在尝试Swift操场,但我找不到改变结构值的方法。下面我想更改默认值的阴影属性 我已经尝试过初始化器和点语法,但由于内部保护级别的原因,“我得到”字段不可访问 let circle = Circle() circle.draggable = true //var shadow = Shadow(color: #colorLiteral(red: 0.9529411764705882, green: 0.6862745098039216, blue: 0.13333333333333333,
let circle = Circle()
circle.draggable = true
//var shadow = Shadow(color: #colorLiteral(red: 0.9529411764705882, green: 0.6862745098039216, blue: 0.13333333333333333, alpha: 1.0), offset: Point(3,-3), blurRadius: 5, opacity: 1)
var shadow = Shadow()
shadow.color = .red
circle.dropShadow = shadow
你显然在使用“形状”游乐场 因此,点击“…”»“高级”»“查看辅助源文件”»“内容”»“模块”»“Book.playgroundmodule”»“源代码”»“PlaygroundAPI”查看源代码 如果查看Shadow结构,这些属性都不会声明为public。这意味着您在该模块之外无法访问它们 相反,如果查看圆形声明,则半径是公共的。如果你看AbstractDrawable,dropShadow也是公共的 在缺少显式访问限定符(例如public)的情况下,属性获取内部访问限定符,该限定符只能在该模块内访问。看见而您在该游乐场中的代码与定义Shadow的模块不在同一个模块中。因此,您无法访问它 所以,底线是,您的警告只是告诉您不能访问Shadow结构的这个内部属性 这就引出了一个问题,为什么他们声明了Shadow,以至于您无法自定义Shadow的性质。我怀疑这只是他们的疏忽。例如,我在Xcode中打开了这个操场工作簿,并用以下内容替换了Shadow的init方法:
public init(offset: Point = Point(x: 1, y: -1), blurRadius: Double = 1, opacity: Double = 0.3, color: Color = .black) {
self.offset = offset
self.blurRadius = blurRadius
self.opacity = opacity
self.color = color
}
然后我可以在我的iPad上重新打开这个游乐场,做如下事情:
let circle = Circle(radius: 30)
circle.dropShadow = Shadow(opacity: 0.9, color: .green)
这就产生了:
你显然在使用“形状”游乐场 因此,点击“…”»“高级”»“查看辅助源文件”»“内容”»“模块”»“Book.playgroundmodule”»“源代码”»“PlaygroundAPI”查看源代码 如果查看Shadow结构,这些属性都不会声明为public。这意味着您在该模块之外无法访问它们 相反,如果查看圆形声明,则半径是公共的。如果你看AbstractDrawable,dropShadow也是公共的 在缺少显式访问限定符(例如public)的情况下,属性获取内部访问限定符,该限定符只能在该模块内访问。看见而您在该游乐场中的代码与定义Shadow的模块不在同一个模块中。因此,您无法访问它 所以,底线是,您的警告只是告诉您不能访问Shadow结构的这个内部属性 这就引出了一个问题,为什么他们声明了Shadow,以至于您无法自定义Shadow的性质。我怀疑这只是他们的疏忽。例如,我在Xcode中打开了这个操场工作簿,并用以下内容替换了Shadow的init方法:
public init(offset: Point = Point(x: 1, y: -1), blurRadius: Double = 1, opacity: Double = 0.3, color: Color = .black) {
self.offset = offset
self.blurRadius = blurRadius
self.opacity = opacity
self.color = color
}
然后我可以在我的iPad上重新打开这个游乐场,做如下事情:
let circle = Circle(radius: 30)
circle.dropShadow = Shadow(opacity: 0.9, color: .green)
这就产生了:
隐马尔可夫模型。。哇!真不敢相信他们会把这么明显的事情搞砸。这是否应该报告给苹果公司——这个星球上最具创新性的隐私保护公司?关于查看源代码,是否在PC上的Xcode上?Bcz我当时正在iPad上工作,不知道该怎么做。我认为操场练习册也是如此;您只能在PC上编辑它?您可以点击“…”按钮和上面我的答案中显示的后续菜单项,在iPad上查看源代码。但要编辑隐藏在操场中的额外源文件,我必须在Mac上这样做,在iPad上创建操场时打开我的iCloud驱动器中的操场,它们保存在iCloud中,然后我可以在macOS中打开。嗯。。哇!真不敢相信他们会把这么明显的事情搞砸。这是否应该报告给苹果公司——这个星球上最具创新性的隐私保护公司?关于查看源代码,是否在PC上的Xcode上?Bcz我当时正在iPad上工作,不知道该怎么做。我认为操场练习册也是如此;您只能在PC上编辑它?您可以点击“…”按钮和上面我的答案中显示的后续菜单项,在iPad上查看源代码。但要编辑隐藏在操场中的额外源文件,我必须在Mac上这样做,在iPad上创建操场时,打开我的iCloud驱动器中的操场,它们保存在iCloud中,然后我可以在macOS中打开。