我正在尝试将数组传递给函数:
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)]
类型的参数列表调用...
有什么问题?如果可以提供简要说明
答案 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]()