Ich versuche, mit SwitfyJson eine generische Sterilisatorfunktion zu erstellen. Derzeit jeder, wo ich Server-Antwort bekommen, ich bin Parsen ist wie folgt:Wie man einen Klassentyp übergibt, der dem Protokoll entspricht
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)
}
Nun ist diese immer wieder jede ist war ich eine Antwort bekommen. Ich versuche eine generische Funktion zu verwenden. Es sollte ungefähr wie folgt aussehen:
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
}
Aber diese „Classtype“ ist in Swift nicht zur Verfügung. Gibt es eine Möglichkeit, das zu erreichen?
Danke, Große Antwort ! Ich habe gerade den generischen Namen zur besseren Lesbarkeit in 'T' geändert "static func serializeToArray (Daten: NSData, _: T.Type) -> [T]" –
MCMatan