将String数组传递给函数

时间:2015-06-15 07:07:33

标签: ios swift nsarray

我正在尝试将数组传递给函数:

var array:[String] = []
// fill the array
array.append(uniqueId as String)
// pass the array to a function:
GamePrefrences.setLevelsArray(array)

我的功能声明如下:

func setLevelsArray(arr:[String])
{
    GamePrefrences.levels_array = arr

}

但是在线上我尝试调用它给出的函数并出现错误:

  

无法使用[(String)]

类型的参数列表调用...

有什么问题?如果可以提供简要说明

3 个答案:

答案 0 :(得分:1)

首先,您的函数不是类级函数,而是直接使用类名调用该方法。

试试这样。

var array:[String] = []
// fill the array
array.append(uniqueId as! String)
// pass the array to a function:
GamePrefrences.setLevelsArray(array)

功能声明。

  class func setLevelsArray(arr:[String])
    {
        GamePrefrences.levels_array = arr

    }

,或者

var array:[String] = []
// fill the array
array.append(uniqueId as String)
// pass the array to a function:
let instance = GamePrefrences()//Depends on you, how you defined the initialiser.
instance.setLevelsArray(array)

你的功能体。

func setLevelsArray(arr:[String])
{
    instance.levels_array = arr

}

答案 1 :(得分:0)

请尝试这样的事情

func setLevelsArray(arr:[String])
{
let tempArr = arr
    GamePrefrences.levels_array = tempArr

}
Swift Arrays中的

Dictionary按值传递,而不是通过引用传递,因此,如果您不更改值或分配给任何其他变量,则Swift compiler不会得到副本,而变量仍然存在heap。所以在分配之前我认为有必要将其复制到另一个变量中。

答案 2 :(得分:0)

您的空数组声明无效。这是如何声明空数组:

var array = [String]()