2017-04-05 11 views
2

안녕 내가 네트워크 요청 결과를 래핑하는 RxAlamofire 작업을 시도하고 결과를 포함는 네트워크 요청

내 목표는 요청을 발사 JSON 응답을 처리하고 중 하나를 포함하는 생성하고 관찰 가능한 것입니다 네트워크 작업 성공 또는 오류가 발생합니다. 다른 장소에서

내가 관찰을 만들 함수를 호출하고 여기에 가입하고 오류 메시지와 함께 성공 또는 실패 여부를 사용자에게 알릴 수 있습니다

내 구현

func discoverMovieList(for url: String, withPagg page: Int) -> Observable<Any> { 
     let requestUrl = "\(url)&page=\(page)" 

     return RxAlamofire.json(.get, requestUrl) 
      .map{ jsonResponse in 
        self.createOrUpdateMoviesList(from: JSON(jsonResponse)) 
       } 
    } 

어떻게 우리가 할 수있는 울부 짖는 소리입니다 코드를 수정하고 프로세스의 결과를 알리기 위해 다른 장소에서 코드를 호출하는 방법을 수정하십시오. 도움이 많이 감사합니다. 감사!

+0

누구든지 도움을받을 수 있습니까? –

+0

누구나 이상적입니까? –

+0

현재 구현에서 문제가 무엇인지 명시 할 수 있습니까? – tomahh

답변

0

subscribe 메서드를 사용하여 제공하는 여러 라이프 사이클 콜백을 관찰 할 수 있습니다. 이 경우, 사용이 같을 것입니다 :

discoverMovieList(for: "http://some.url", withPagg: 2) 
    .subscribe(
    onNext: { movies in 
     uiElement.string = "Movie list received" 
    }, 
    onError: { error in 
     uiElement.string = "Something went wrong" 
    } 
) 
    .disposed(by: disposeBag) 

disposeBag 구독을 보유하는 데 사용되기 때문에 disposeBag가 해제 될 때, 구독이 취소됩니다 (우리의 경우, 네트워크 호출이 중단 될 것이다).

+0

감사합니다. 내 self.createOrUpdateMoviesList (from : JSON (jsonResponse))는 jsonResponse의 coredata 만 업데이트합니다 (반환 값은 없습니다) 어떻게 응답을 연결할 수 있습니다. 즉, 핵심 데이터 업데이트가 완료되면 다른 요청을 실행 하시겠습니까? 처음부터지도를 사용하지 않았을 수 있습니까? –

+0

안녕하세요? –