Я пытаюсь создать общую функцию стерилизатора с помощью SwitfyJson. В настоящее время каждого, где я получаю ответ сервера, я разбор, как это:Как передать тип класса, который соответствует протоколу
let json = JSON(data : networkResponse.data!)
let usersJson = json["data"]
var users = [User]()
for (_,subJson):(String, JSON) in usersJson {
let user = User(json: subJson)
users.append(user)
}
Теперь это неоднократно каждый было я получаю ответ. Я пытаюсь использовать универсальную функцию insted. Это должно выглядеть примерно так:
protocol Serializable {
init(json: JSON)
}
func serializeToArray(data: NSData, serializable: Serializable)->serializable {
let json = JSON(data : data)
let jsonObjects = json["data"]
var serializedObjects = [serializable.classType]()
for (_,subJson):(String, JSON) in jsonObjects {
let serializedObject = User(json: subJson)
serializedObjects.append(user)
}
return serializedObjects
}
Но этот «тип класса» недоступен в Swift. Есть ли способ, которым я могу это достичь?
Спасибо, Великий ответ ! Я просто изменил общее имя на «T» для лучшей читаемости »static func serializeToArray (данные: NSData, _: T.Type) -> [T]" –
MCMatan