Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift playground 如何在Swift中更改结构属性_Swift Playground_Swift5_Ipad Playgrounds - Fatal编程技术网

Swift playground 如何在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,

我正在尝试Swift操场,但我找不到改变结构值的方法。下面我想更改默认值的阴影属性

我已经尝试过初始化器和点语法,但由于内部保护级别的原因,“我得到”字段不可访问

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中打开。