将数组传递给Swift中的函数,抛出无效的参数类型错误

时间:2015-07-07 20:40:36

标签: arrays swift parameters

这里有一个非常基本的问题,但它让我塞满了...

我尝试使用此方法调用函数(在另一个类中定义):

 var idarray = Profile.getIDArray(Globals.friendlist);

其中Globals.friendlist是一个Profiles数组(即[Profile?])

现在这是我的.getIDArray函数

func getIDArray(inputarray:[Profile?]) -> [String] {
  //Blah - code that returns an array of Strings
}

每当我尝试编译时,我都会收到以下错误:

Cannot invoke 'getIDArray' with an argument list of type '([Profile?])'

现在我感到很困惑 - 因为我非常确定我的函数 接受[Profile?]作为参数类型!

出了什么问题 - swift中引入了一些我不知道的东西吗?

1 个答案:

答案 0 :(得分:4)

您正在调用getIDArray作为类型方法。您可能错过了func声明中的classstatic关键字:

class func getIDArray(...  // if Profile is a class

static func getIDArray(... // if Profile is struct or enum