将一个或多个数组作为参数传递给Swift中的方法

时间:2014-06-05 00:47:26

标签: swift

我想创建一个接受一个或多个参数的方法但是当我尝试以下代码时,我收到以下错误消息。

struct SomeStruct {
    static func method(arrays: AnyObject[]...) -> AnyObject[] {
        return []
    }
}
SomeStruct.method([1], [2])


Cannot convert the expression's type 'AnyObject[]' to type 'IntegerLiteralConvertible'

如果我运行以下代码

SomeStruct.method(["1"], ["2"])

我收到以下错误

Cannot convert the expression's type 'AnyObject[]' to type 'ExtendedGraphemeClusterLiteralConvertible'

我想允许将0个或更多个项目数组传递给任何元素类型(包括数字)的此方法。我怎么能这样做?

enter image description here

1 个答案:

答案 0 :(得分:1)

我能够通过使用泛型而不是AnyObject来使其工作。

struct SomeStruct {
    static func method<T>(arrays: T[]...) -> T[] {
        return []
    }
}
SomeStruct.method([1], [2])