Skip to content

알림 처리 #14

@zzangzzangguy

Description

@zzangzzangguy

토스트 메시지를 사용한 알림 처리

  • 즐겨찾기 상태 변경 시 토스트 메시지 표시
case .updateFavoriteStatus(let cardID, let isFavorite):
    if let card = currentState.searchResult.first(where: { $0.id == cardID }) {
        // ...
        if (RealmManager.shared.getCard(withId: cardID)?.toPokemonCard()) != nil {
            let toastMessage = isFavorite ? "\(card.name)이(가) 즐겨찾기에 추가되었습니다." : "\(card.name)이(가) 즐겨찾기에서 제거되었습니다."
            DispatchQueue.main.async {
                UIApplication.shared.windows.first?.makeToast(toastMessage)
            }
        }
    }
    // ...
  • updateFavoriteStatus 액션 처리 시, 해당 카드의 즐겨찾기 상태를 업데이트하고 토스트 메시지를 표시

  • 즐겨찾기 추가/제거에 따라 적절한 메시지를 생성하고, DispatchQueue.main.async를 사용하여 메인 스레드에서 토스트 메시지를 표시

  • 페이지네이션 종료 시 토스트 메시지 표시

case .loadNextPage:
    // ...
    searchQuery(query: query, page: nextPage, rarity: rarity)
        .map { response in
            guard !response.data.isEmpty else {
                DispatchQueue.main.async {
                    UIApplication.shared.windows.first?.makeToast("더 이상 로드할 데이터가 없습니다.")
                }
                return .setCanLoadMore(false)
            }
            return .appendSearchResults(response.data)
        }
        .catch { .just(.setError($0)) },
    // ...
  • loadNextPage 액션 처리 시, searchQuery 함수를 호출하여 다음 페이지 데이터를 가져옴.

  • 응답 데이터가 비어있는 경우, "더 이상 로드할 데이터가 없습니다."라는 토스트 메시지를 표시.

  • UIAlertController를 사용한 알림 처리

private func showNoResultsAlert() {
    let alertController = UIAlertController(title: "검색 결과 없음", message: "입력한 검색어에 해당하는 포켓몬이 없습니다.", preferredStyle: .alert)
    alertController.addAction(UIAlertAction(title: "확인", style: .default, handler: nil))
    present(alertController, animated: true, completion: nil)
}
  • showNoResultsAlert 메서드를 호출하여 "검색 결과 없음" 알림을 표시

  • UIAlertController를 사용하여 알림을 생성하고, "확인" 버튼을 추가

  • present 메서드를 사용하여 알림을 화면에 표시

  • 에러 알림 표시

private func showErrorAlert(message: String) {
    let alertController = UIAlertController(title: "에러", message: message, preferredStyle: .alert)
    alertController.addAction(UIAlertAction(title: "확인", style: .default, handler: nil))
    present(alertController, animated: true, completion: nil)
}
  • showErrorAlert 메서드를 호출하여 에러 알림을 표시
  • UIAlertController를 사용하여 에러 메시지와 함께 알림을 생성하고, "확인" 버튼을 추가
  • present 메서드를 사용하여 알림을 화면에 표시

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions