swift - Swift 中的条件 if 语句

标签 swift conditional-statements

我在 Objective-C 中遇到了条件 if 语句:

self.frontCardView = self.backCardView;
if ((self.backCardView = [self popPersonViewWithFrame:[self backCardViewFrame]])) {
    // Fade the back card into view.
    ...
}

基本上:

if ((self.backCardView = self.popPersonViewWithFrame(self.backCardViewFrame()))) {...}

这会将“self.backCardView”设置为返回值 “-popPersonViewWithFrame:”。在 C(和 Objective-C)中,一个 assignment 是分配的值。

在这种情况下,表达式“(self.backCardView = [self popPersonViewWithFrame:self.backCardViewFrame])”的返回值 “-popPersonViewWithFrame:”。

如果返回值为“nil”,则不执行条件(因为“nil”是一个false 值)。

如果我尝试在 Swift 中做同样的事情:

self.frontCardView = self.backCardView
if ((self.backCardView = self.popPersonViewWithFrame(self.backCardViewFrame()))) {
    // Fade the back card into view.
    ...
}

我在编译时遇到错误:

Type '()' does not conform to protocol 'LogicValue'

最佳答案

出于安全原因,Swift 被专门设计为不允许在条件中测试赋值(人们不小心使用了一个 = 而不是两个)。赋值运算符的结果始终为 void (),如错误所述。

关于swift - Swift 中的条件 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24666851/

相关文章:

快速,可选展开,如果条件反转

ios - 访问扩展文件中一个文件中声明的变量时出现问题

javascript - 允许在 url 末尾为 javascript 条件 css 样式使用通配符

php - 创建条件 sql 查询

ios - 在 iOS 中使用 Firebase Remote Config 测试/验证 A/B 测试

objective-c - 如何从 Swift 调用 Objective-C 代码?

swift - 关闭弹出窗口后表格 View 没有更新?

arrays - 从 iOS 7 开始将数组发送到服务器

java - 除非我两次请求相同的输入,否则为什么会出现错误? ( java )

c# - LINQ WHERE 语句/忽略条件