我正在使用Alamofire
和SwiftyJSON
。我想爲常見情況構建一般請求和解析模型。首先,我制定了一個名爲JSONConvertible
的協議。使用協議的動態初始化器
protocol JSONConvertible {
init?(json: JSON)
}
其次,我在Alamofire
擴展Request
類。
extension Request {
func getResult(format: [String: AnyClass]) {
self.responseJSON { (response) in
guard let statusCode = response.response?.statusCode else {
return
}
switch statusCode {
case 200:
var result = [String: AnyObject]()
let json = JSON(rawValue: response.result.value!)!
for (key, className) in format {
if className.self is JSONConvertible {
let value = className.self(json: json[key]) // get error in this line
}
}
case 201..<400:
break
case 400...Int.max:
break
default:
break
}
}
}
}
但我從編譯器得到一個錯誤。因爲AnyObject只是協議,並沒有這個初始化器。我不想只獲取字典或數組。我想獲得具體課程的實例。請幫幫我。非常感謝!
至少沒有錯誤了。謝謝!我會測試它是否會起作用。 – Lumialxk
請注意,您不需要'.self' - 'className as? JSONConvertible.Type'會做。 – Hamish