ios - 在定义的同一 IBAction 中使用未解析的标识符

标签 ios swift

所以我是 swift 的新手,不知道为什么它不能识别 print(right_answer),即使它在同一个 IBAction 函数中声明。

@IBAction func answer_three(_ sender: Any) {
    if randomnumber1 == 2  {
        var right_answer = true

    } else {
        let right_answer = true

    }
    //Error "Use of unresolved identifier 'right_answer' on line below
    print(right_answer)
}

如果您需要更多信息或代码,请告诉我。

最佳答案

任何时候你有花括号,它定义了一个本地范围。当您离开花括号时,您将退出该范围。如果您在一组大括号内定义一个变量,则它仅存在于这些大括号内。

将变量 right_answer 的声明移动到函数的顶部,如下所示:

@IBAction func answer_three(_ sender: Any) -> Bool {
    var right_answer: Bool
    if randomnumber1 == 2  {
       right_answer = true
    } else {
       right_answer = true
    }
    print(right_answer)
    return right_answer
}

(您的原始代码在所有情况下都将 right_answer 设置为 true,这没有多大意义。我就这样保留了它,因为我不知道您想要它做什么。)

请注意,变量 right_answer 仍然是函数的局部变量。当您退出该函数时,该变量超出范围并且该变量不再存在。 (没关系,因为你关心的是函数的返回值。)

局部和全局作用域的概念是编程的基础。你应该读一本关于编程的书。 Apple 的 Swift 编程 iBook 将是一个不错的选择。它教您使用 Swift 从头开始​​编程。

关于ios - 在定义的同一 IBAction 中使用未解析的标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51338029/

相关文章:

objective-c - 没有 UIControls 响应用户事件

ios - 未检测到 NFC 标签 |核心NFC

ios - 想要将 uitableview 打印为 pdf

ios - Swift - 二元运算符不能应用于类型的操作数

swift - 在swift中有条件地为变量赋值的最佳方法

ios - 如何使用自动布局以编程方式修复所有 iPhone 英寸中的文本字段和按钮

ios - UIPickerView 动画隐藏和显示失败

iOS:同时录制和播放的示例代码

ios - 谷歌地图IOS sdk只显示 '??????'

ios - 如何在 Tesseract 中使用配置变量?