오늘은 여자친구가 생일이니, 생일 기념 코딩을 해보자

생일 기념 코딩이란 별거 없다. 여자친구가 퇴근하기 전까지 집중해서 코드를 만들고 나가서 노는 아주 파이어족같은 코딩이다

시작

오늘은 어제 테스트 도중 문제를 발견해 수정하려한다

바로 권한에 대한 조건 문제다….

image.png

사진을 보면 새로고침 아이콘만 둥둥 떠있다.. 이런

프린트문 찍어보는중

 Future<void> calculateDistance(NaverMapDataContent data) async {
    try {
      final distance = _naverMapService.calculateDistance(
        NLatLng(
            state.currentLocation.latitude, state.currentLocation.longitude),
        NLatLng(data.locationX!, data.locationY!),
      );
      print('check13 ==> $distance');

      print('check14 ==> ${formatDistance(0.0)}');
      emit(state.copyWith(
        currentLocation: await _locationService.getCurrentLocation(),
        distance: formatDistance(0.0),
      ));
    } catch (e) {
      debugPrint('거리 계산 중 에러 발생: $e');
    }
  }
String formatDistance(double distanceInMeters) {
  return switch (distanceInMeters) {
    0 || 0.0 => '사용자와 매장간 거리계산을 위해 위치를 활성화해주세요.',
    double d when d < 1000 => '현재 위치로부터 ${distanceInMeters.round()}m',
    _ => '현재 위치로부터 ${(distanceInMeters / 1000).toStringAsFixed(1)}km'
  };
}

그렇다.. 문제를 찾았다

어제 트라이 캐치문을 추가하면서 생긴 문제였다. 권한이 없다면 캐치문으로 빠지게 되는데 이떄는 state에 저장되는것이 아니기 떄문에 따로

catch (e) {
      debugPrint('거리 계산 중 에러 발생: $e');
      emit(state.copyWith(distance: formatDistance(0.0)));
    }

위와 같이 해줘야하는 것이였다.. 후,, 그럼 이제 프린트문을 지우고 다시 코드를 생성해보자