小编SLN*_*SLN的帖子

为什么标签的默认类型是强制解包的可选项?

当我在视图中创建标签(从Object库中拖动)并使IBOutlet连接标签viewController(Ctrl和拖动)时,Xcode生成的默认代码是,例如,@IBOutlet weak var displayColumn: UILabel!

我可以删除感叹号并将其设置为UILable唯一.但是必须有一个很好的理由Xcode希望它是一个强制解包的可选类型.

问题:我认为我不明白在这里使用可选类型的原因.因为我已经在我的视图中创建了一个标签并将其连接到我的控制器,所以它确实存在,它存在,我创建它.为什么Xcode想要一个选项作为默认类型?如果它说标签内的文字是一个选项,那对我来说听起来很合理,因为标签在运行时的某个时刻可能是空的.

非常感谢

xcode optional uilabel ios swift

1
推荐指数
1
解决办法
403
查看次数

私人价值仍然可以从外部访问

我仍然对范围感到困惑,我认为变量只能在其范围内访问,这就是我通常所理解的

class Car {
    let manufacturer: String

    private(set) var color: String

    init() {
        manufacturer = "Ford"
        color = "Black"
    }

    func changeColor(color: String){
        self.color = color
    }
}

var carOfTim = Car()

carOfTim.changeColor("Red") // only "changeColor" fun can update the color
print(carOfTim.color)


//why I can do this?
carOfTim.color = "Green"
print(carOfTim.color) // it prints the "Green"!
Run Code Online (Sandbox Code Playgroud)

问题:我认为私有变量color只能由changeColor函数访问,因为它changeColor具有相同的范围color.但carOfTim.color = "Green"仍然可以更新颜色变量,为什么?

猜猜:因为我使用了Xcode游乐场,所有内容都被输入到相同的普通"终端"中,因此如果我将Car类放入不同的文件夹中,它们可能都具有相同的范围,carOfTim.color = "Green" 可能不再有效.

如果我错了,请纠正我.非常感谢您的时间和帮助.

scope class swift

0
推荐指数
1
解决办法
39
查看次数

将 nil 分配给强制展开选项不会使代码崩溃,这是为什么呢?

我正在初步构建计算器。目前,该代码只是在用户点击计算器时将数字和 Pi 打印到计算器的标签中。

\n\n

1) 车码

\n\n
import UIKit\n\nclass ViewController: UIViewController {\n\n    @IBOutlet weak var display: UILabel! = nil //Look Here "(\n\n    var userIsInTheMiddleOfTypeing = false\n\n    @IBAction func touchDigit(_ sender: UIButton){\n        let digit = sender.currentTitle!\n        if userIsInTheMiddleOfTypeing {\n            let textCurrentlyInDisplay = display.text!\n            display.text = textCurrentlyInDisplay + digit\n        } else {\n            display.text = digit\n        }\n\n        userIsInTheMiddleOfTypeing = true\n    }\n\n    @IBAction func performOperation(_ sender: UIButton) {\n        userIsInTheMiddleOfTypeing = false\n        if let methematicalSymbol = sender.currentTitle {\n            if methematicalSymbol == "\xcf\x80" {\n                display.text = …
Run Code Online (Sandbox Code Playgroud)

xcode ios swift

0
推荐指数
1
解决办法
157
查看次数

从元组参数设置元素参数的默认值

def found( names(String, String) ): Unit {
  // Do something
}
Run Code Online (Sandbox Code Playgroud)

找到的函数的参数列表是一个字符串元组(string,string)

如何将第二个元组元素的默认值设置为第一个元组元素的默认值,names(String, String=names._1)或者甚至允许这样做?如果是这样,我该如何传递论点?found( ("FirstName", ???) )要么found("FirstName")

default scala function

0
推荐指数
1
解决办法
49
查看次数

IntelliJ中文件和类文件之间的区别

可以在IntelliJ IDEA中创建一个Scala文件或一个Scala类。我碰巧所有代码都是文件样式而不是类样式。到目前为止,一切正常。

它们之间有什么区别?

Scala文件如下所示

在此处输入图片说明

scala intellij-idea

-1
推荐指数
1
解决办法
63
查看次数

标签 统计

swift ×3

ios ×2

scala ×2

xcode ×2

class ×1

default ×1

function ×1

intellij-idea ×1

optional ×1

scope ×1

uilabel ×1