Parameter lists of different types

I'm trying to support parameter lists with different types. I came up with the following code and have a few questions:

  1. How to get rid of the separate intParameters and stringParameters lists in ParameterList?
  2. How to do this more elegantly in Swift? I tried enums (as a parameter variant, generics, protocols) and always ran into problems.

enum ParameterError: Error {
case laber
}

class Parameter {
init(name: String) {
self.name = name
}

var name: String

}

class IntParameter: Parameter {
init(name: String, value: [Int]) {
self.value = value
super.init(name: name)
}

var value: [Int]

}

class StringParameter: Parameter {
init(name: String, value: [String]) {
self.value = value
super.init(name: name)
}

var value: [String]

}

class ParameterList {

init() {
        intParameters = []
        stringParameters = []
}

func add(_ parameter: IntParameter) {
        intParameters.append(parameter)
}

func add(_ parameter: StringParameter) {
        stringParameters.append(parameter)
}

func find(name: String) throws ->[Int] {
        for parameter in intParameters {
                if parameter.name == name {
                        return parameter.value
                }
        }
        throw ParameterError.laber
}

func find(name: String) throws -> [String] {
        for parameter in stringParameters {
                if parameter.name == name {
                        return parameter.value
                }
        }
        throw ParameterError.laber
}

var intParameters: [IntParameter]
var stringParameters: [StringParameter]

}

func earlier() -> ParameterList {
let list = ParameterList()
let parameter1 = IntParameter(name: "bla", value: [13, 17])
list.add(parameter1)
let parameter2 = StringParameter(name: "laber", value: ["hurz", "schwurz"])
list.add(parameter2)
return list
}

func later(_ list: ParameterList) throws {
let ints: [Int] = try list.find(name: "bla")
let strings: [String] = try list.find(name: "laber")
print(ints[0], strings[0])
}

func main() throws {
let list = earlier()
try later(list)
}

try main()