트러블 슈팅 입출금 현황 - donggeonoh/bithumb-techcamp-ios-1st GitHub Wiki
1. Bithumb Asset status API에서 코인 이름을 넘겨주지 않는 문제 - DonggeonOh
지역화 파일 내부
모든 코인에 대한 요청을 할 경우 코인 심볼에 대한 정보가 오브젝트 형태로 넘어오게 됩니다.
하지만, 화면에 코인 이름과 심볼을 모두 표시해야 하기 때문에 지역화 파일을 만들어서 해당 심볼에 대한 코인 이름을 대응하여 코인 이름을 표시하도록 하였습니다.
2. 검색, 필터링, 정렬 기능 구현 시 여러 기능을 동시에 사용하는 경우(검색 하면서 필터링 및 정렬 등 기능 동작 등..) 이런 복잡한 경우에서 데이터를 어떻게 처리해야 할지에 대한 고민 - DonggeonOh
// DepositWithdrawalStatusDataManager.swift
func filteredStatuses(by type: FilterType?, with searchText: String) {
// Controller 에게 전체, 정상, 중단에 대한 FilterType과 검색 바에 입력된 문자열을 파라미터로 넘겨받는다.
// filterType으로 데이터를 먼저 필터링하고 코인이나 심볼이 검색된 문자열과 같은 데이터를 클래스 내부 임시 저장소에 저장 및 delegate로 호출한다.
}
// DepositWithdrawalStatusDataManager.swift
func sortedStatuses(by type: SortType?, _ isAscend: Bool) {
// SortType(이름, 입금, 출금)에 따라서 임시 저장소에 저장된 데이터를 정렬한다.
}
가공된 데이터를 관리하기 위하여 임시 저장소를 만들어주었습니다.
만약, 검색이나 필터링, 정렬 기능을 수행하면 임시 저장소에 데이터들을 저장하고, 다시 원래대로 돌려놓으면 기존 데이터를 복구하여 관리하였습니다.
그리고 검색을 하고 난 다음 필터링을 하거나, 필터링을 한 다음 검색을 하는 등 여러 시나리오들에 대용하기 위해
검색 및 필터링을 하나의 메서드에서 수행하고 메서드 내부에서 검색 및 필터링을 메서드로 다시 분리하여 구현하였습니다.
정렬의 경우 검색 및 필터링을 한 데이터를 정렬하는 방식으로 구현하였습니다.