在目前接觸到的Alamofire和AFNetworking之中
Alamofire封裝語言為Swift, AFNetworking則為OC!
在其數(shù)據(jù)接口的請求過程,以及Json數(shù)據(jù)的解析中,二者用法基本相同
AFNetworking的算法,以及用法優(yōu)于Alamofire, 但是在使用的體驗上,個人感覺前者不如后者
AFNetworking
var dataArray = NSMutableArray()
let dic = resp?.objectForKey("data")
if let array = dic?.objectForKey("topic") {
// 利用KVC進行屬性賦值(字典轉(zhuǎn)模型model)
for i in 0 ..< array.count {
let subDic = array[i]
let model = HomeModel()
// 直接字典轉(zhuǎn)模型,必須保證model中的字段和json數(shù)據(jù)保持一致
model.setValuesForKeysWithDictionary(subDic as! [String : AnyObject])
self.dataArray.addObject(model)
}
}
Alamofire
var dataArray:[AdvModel] = []
if let modelArray = resp.result.value as? [[String: AnyObject]]{
for advDict in modelArray {
let model = AdvModel()
model.setValuesForKeysWithDictionary(advDict)
self.dataArray.append(model)
}
}
但是AFNetworking的用法更加多變更將靈活,更實用. 加上Swift的不穩(wěn)定行,AFNetworking高于Alamofire