xcode - 在 Swift 中调用函数时的预期声明

标签 xcode swift function compiler-errors declaration

我正在创建一个应用程序,它根据步进器的输入在标签上显示不同的颜色作为文本字符串。作为其中的一部分,我尝试用 swift 编写一个函数来设置标签的字符串值,以便代码可以多次用于多个标签和步进器。该函数使用一个 inout 参数和一个可变参数:

func function(var Extra: Int, inout LabelName: String) {
    if Extra == 0 {
        LabelName = "Black"
    }
    if Extra == 1 {
        LabelName = "Brown"
    }
    if Extra == 2 {
        LabelName = "Red"
    }
    if Extra == 3 {
        LabelName = "Orange"
    }
    if Extra == 4 {
        LabelName = "Yellow"
    }
    if Extra == 5 {
        LabelName = "Green"
    }
    if Extra == 6 {
        LabelName = "Blue"
    }
    if Extra == 7 {
        LabelName = "Violet"
    }
    if Extra == 8 {
        LabelName = "Grey"
    }
    if Extra == 9 {
        LabelName = "White"
    }
    if Extra == -1 {
        LabelName = "Gold"
    }
    if Extra == -2 {
        LabelName = "Silver"
    }

}

当我尝试使用调用该函数时

function(ValueLabel1Extra, ValueLabel1String)

我收到一个 Swift 编译器错误,指出“预期声明”,根据先前的知识和一些研究,这是一个函数未正确声明的错误(如果有的话)。

我不完全确定未声明的内容,但通过反复试验,似乎函数本身就是未声明的内容,但仅在我调用它时才声明。即使多次重写和编辑代码后问题仍然存在。

提前致谢!

最佳答案

你需要

function(ValueLabel1Extra, &ValueLabel1String)    

因为它不是正在编辑的函数的局部变量

还可以考虑这样的 switch 语句,这不是必需的,但通常可以节省编码空间。

func function(var Extra: Int, inout LabelName: String) {

    switch(Extra){

        case 0:
            LabelName = "Black"
        case 1:
            LabelName = "Brown"
        case 2:
            LabelName = "Red"
        case 3:
            LabelName = "Orange"
        case 4:
            LabelName = "Yellow"
        case 5:
            LabelName = "Green"
        case 6:
            LabelName = "Blue"
        case 7:
            LabelName = "Violet"
        case 8:
            LabelName = "Grey"
        case 9:
            LabelName = "White"
        case -1:
            LabelName = "Gold"
        case -2:
            LabelName = "Silver"
        default:
            LabelName = "Black"
    }
}

var x: String = ""
function(4, &x)
println(x)

关于xcode - 在 Swift 中调用函数时的预期声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31943673/

相关文章:

ios - Xcode 5 iPhone应用程序应用商店上传错误

objective-c - 为什么 Xcode 不自动为我添加 viewDidUnload?

ios - 更改应用程序中解析推送通知的当前 channel

ios - Xcode 不允许新文件在组中的编辑器中显示

sql - 选择sqlite(Swift)中的count(col_name)不起作用

C++ 重载函数和函数模板 - 不同的行为?

ios - 来自太多请求的 NSURLSession 和地理编码器错误,解决方案是什么?

ios - IQKeyboardManager 没有成员 sharedManager

php - 有条件地定义函数

c - 在函数调用期间结构更改的 union 内的结构