설치는 SPM을 통해서 진행
바로 예제부터 보면서 보자
func fetchData<T: Decodable>(url: URL, completion: @escaping (Result<T, AFError>) -> Void) {
AF.request(url).responseDecodable(of: T.self) { response in
completion(response.result)
}
}
fetchData 부분을 보면 URLSession을 사용하여 구현하는것보다 코드가 훨씬 짧아지는것을 볼 수 있다.
completion handler를 통해 결과값을 전달한다.
fetchData(url: url) { (result: Result<SomeData, AFError>) in
switch result {
case .success(let result):
// 데이터 값 로드 성공! 사용하는 코드 작성
case .failure(let error):
print("데이터 로드 실패: \(error)")
// 데이터 값 로드 실패
}
}
Result 타입을 받아 switch로 성공과 실패 사례를 구현해서 사용하면 끝!