我正在尝试使用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
}
但是这个“classType”在Swift中不可用。 有没有办法实现这个目标?
感谢,伟大的答案!我已经将通用名称更改为'T'以提高可读性“static func serializeToArray(data:NSData,_:T.Type) - > [T]” –
MCMatan