当前位置: 首页 > 面试题库 >

在Swift中进行编码时,方程式中的`?`或`:`是什么

融修平
2023-03-14
问题内容

我在臭名昭著的SevenSwitch类中遇到了一行代码

这是线…

backgroundView.layer.cornerRadius = self.isRounded ? frame.size.height * 0.4 : 2

我不明白方程式的结尾?是什么或 什么:。有人可以解释一下这些含义以及它们的用法吗?


问题答案:

运算符可以是一元,二进制或三元:

这是三元运算符在三个目标上的运算。与C一样,Swift也只有一个三元运算符,即三元条件运算符(a?b:c)。

来自Apple Documents
基本操作员

三元条件运算符

三元条件运算符是具有三部分的特殊运算符,其形式为问题?答案1:答案2。这是根据问题是对还是错来评估两个表达式之一的快捷方式。如果问题为真,它将评估答案1并返回其值;否则,它评估answer2并返回其值。

根据您的问题, 如果isRound是真的,那么角落收音机是frame.size.height2。

就像条件:

if(self.isRounded){
    backgroundView.layer.cornerRadius = frame.size.height * 0.4
}
else{
    backgroundView.layer.cornerRadius = 2.0
}


 类似资料:
  • 问题内容: 我正在将Xcode7和Swift与Storyboards一起使用。当我打开LaunchScreen.storyboard并尝试在其上设置自定义类时,Xcode抱怨一个人不能在LaunchScreen故事板上拥有自定义类。所以我的问题是,有什么方法可以对LaunchScreen进行编程编码,因为我想避免使用IB在其上拖放元素。 问题答案: 否, 在 您的应用开始执行 之前 会显示启动屏幕

  • 问题内容: 我尝试以编程方式实现UITableView,而不使用xib或Storyboards。这是我的代码: ViewController.swift MyTableViewController.swift 但是当我运行应用程序时,我得到的只是空表。在日志中,我看到了和的几行,但没有。如何修复此代码以获取包含6行文本的表格? 问题答案: 注意: 正如您提到的,您刚刚开始在中进行编程。我以编程方式

  • 问题内容: 我正在尝试为自己创建一个自定义单元,但是遇到了一些困难。 首先,我无法使用InterfaceBuilder,因为我正在Xcode中对该bug进行变体。每次我在Interface Builder中单击一个元素时,该视图中的所有内容的高度和宽度均为零,并在视图外部重新定位。此外,我想学习如何以编程方式执行此操作。 其次,我在项目中使用Swift语言。我一直在尝试遵循此演示,并尽最大努力将O

  • 问题内容: 我有两个VC:VC1和VC2。在VC1中,我有一个以编程方式制作的,并且我想传递给VC2。 我知道如何在情节提要中制作Segue,但由于这是通过编程方式制作的,因此目前我不能这样做。 如果我想使用segue传递结果数组,是否有办法以编程方式进行segue?如果这不可能,我是否应该只使用VC2 并设置一个委托来传递? 问题答案: 您可以像在此答案中建议的那样进行操作: Instantia

  • 问题内容: 我正在尝试以编程方式构建UI。如何使该动作起作用?我正在用Swift开发。 viewDidLoad中的代码: 问题答案: 您只是在选择器名称的末尾缺少冒号。因为按下需要一个参数,所以冒号必须在该位置。而且,您按下的函数不应嵌套在viewDidLoad中。 编辑:更新以反映Swift 2.2中的最佳实践。应该使用#selector()而不是不推荐使用的文字字符串。

  • 本文向大家介绍在python中进行编译和链接的过程是什么?,包括了在python中进行编译和链接的过程是什么?的使用技巧和注意事项,需要的朋友参考一下 编译:python中的源代码保存为.py文件,然后将其编译为称为字节码的格式,然后将字节码转换为机器码。编译后,代码存储在.pyc文件中,并在更新源代码时重新生成。此过程称为编译。 链接:链接是最后一个阶段,其中所有功能都与它们的定义链接在一起,因