Как передать тип класса в качестве параметра функции

У меня есть общая функция, которая вызывает веб-сервис и сериализует ответ JSON обратно к объекту.

class func invokeService<T>(service: String, withParams params: Dictionary<String, String>, returningClass: AnyClass, completionHandler handler: ((T) -> ())) {

            /* Construct the URL, call the service and parse the response */
}

То, что я пытаюсь сделать, является эквивалентом этого кода Java

public <T> T invokeService(final String serviceURLSuffix, final Map<String, String> params,
                               final Class<T> classTypeToReturn) {
}
Правильная ли подпись моего метода для того, что я пытаюсь выполнить?Более конкретно, указываетAnyClass как тип параметра, что нужно сделать?При вызове метода я передаюMyObject.self в качестве значения returningClass, но я получаю компиляциюошибка "Невозможно преобразовать тип выражения '()" в тип "String" "
CastDAO.invokeService("test", withParams: ["test" : "test"], returningClass: CityInfo.self) { cityInfo in /*...*/

}

Редактировать:

Я пытался с помощьюobject_getClassкак уже упоминалось holex, но теперь я получаю:

ошибка: «Тип« CityInfo.Type »не соответствует протоколу« AnyObject »»

Что нужно сделать, чтобы соответствовать протоколу?

class CityInfo : NSObject {

    var cityName: String?
    var regionCode: String?
    var regionName: String?
}

Ответы на вопрос(3)

Ваш ответ на вопрос