티스토리 뷰
1. restricted와 denied는 합쳐도 될 것 같다.
case .restricted:
//기본적으로 새싹캠퍼스의 날씨지만, 레이블은 서울만 표시(현대카드 웨더처럼)
allHidden()
locationButton.image = UIImage(systemName: "location")
hud.show(in: view)
AddressAPIManager.shared.getLocationData(lat: lat, lon: lon) { value in
self.locationLabel.text = "\(value.regionFirst)"
WeatherAPIManager.shared.getWeatherData(lat: self.lat, lon: self.lon) { value in
//첫번째 뷰
let imageURL = URL(string: Endpoint.imageURL + "\(value.iconId)@2x.png")
self.weatherImageView.kf.setImage(with: imageURL!)
self.currentTempLabel.text = "\(WeatherModel.getWeather(weather: value.weather)) \(value.temp)°"
self.maxMinTempLabel.text = "최고 \(value.temp_max)° · 최저 \(value.temp_min)°"
//두번째 뷰
self.windLabel.text = "풍속 \(value.wind)m/s"
//세번째 뷰
self.humidityLabel.text = "습도 \(value.humidity)%"
//네번째 뷰
self.pressureLabel.text = "기압 \(value.pressure)hPa"
//다섯번째 뷰
self.messageLabel.text = WeatherModel.getMessage(weather: value.weather)
self.hud.dismiss(animated: true)
self.allShow()
}
}
showRequestLocationServiceAlert()
case .denied:
//기본적으로 새싹캠퍼스의 날씨지만, 레이블은 서울만 표시(현대카드 웨더처럼)
allHidden()
locationButton.image = UIImage(systemName: "location")
hud.show(in: view)
AddressAPIManager.shared.getLocationData(lat: lat, lon: lon) { value in
self.locationLabel.text = "\(value.regionFirst)"
WeatherAPIManager.shared.getWeatherData(lat: self.lat, lon: self.lon) { value in
//첫번째 뷰
let imageURL = URL(string: Endpoint.imageURL + "\(value.iconId)@2x.png")
self.weatherImageView.kf.setImage(with: imageURL!)
self.currentTempLabel.text = "\(WeatherModel.getWeather(weather: value.weather)) \(value.temp)°"
self.maxMinTempLabel.text = "최고 \(value.temp_max)° · 최저 \(value.temp_min)°"
//두번째 뷰
self.windLabel.text = "풍속 \(value.wind)m/s"
//세번째 뷰
self.humidityLabel.text = "습도 \(value.humidity)%"
//네번째 뷰
self.pressureLabel.text = "기압 \(value.pressure)hPa"
//다섯번째 뷰
self.messageLabel.text = WeatherModel.getMessage(weather: value.weather)
self.hud.dismiss(animated: true)
self.allShow()
}
}
showRequestLocationServiceAlert()
지금 따로 설정해둔 것이 없기때문에 코드가 아예 동일하다.
만약 둘의 코드가 다르더라도 조건문을 활용한다면 충분히 해결이 가능할 것이다.
case .restricted, .denied:
//기본적으로 새싹캠퍼스의 날씨지만, 레이블은 서울만 표시(현대카드 웨더처럼)
allHidden()
locationButton.image = UIImage(systemName: "location")
hud.show(in: view)
AddressAPIManager.shared.getLocationData(lat: lat, lon: lon) { value in
self.locationLabel.text = "\(value.regionFirst)"
WeatherAPIManager.shared.getWeatherData(lat: self.lat, lon: self.lon) { value in
//첫번째 뷰
let imageURL = URL(string: Endpoint.imageURL + "\(value.iconId)@2x.png")
self.weatherImageView.kf.setImage(with: imageURL!)
self.currentTempLabel.text = "\(WeatherModel.getWeather(weather: value.weather)) \(value.temp)°"
self.maxMinTempLabel.text = "최고 \(value.temp_max)° · 최저 \(value.temp_min)°"
//두번째 뷰
self.windLabel.text = "풍속 \(value.wind)m/s"
//세번째 뷰
self.humidityLabel.text = "습도 \(value.humidity)%"
//네번째 뷰
self.pressureLabel.text = "기압 \(value.pressure)hPa"
//다섯번째 뷰
self.messageLabel.text = WeatherModel.getMessage(weather: value.weather)
self.hud.dismiss(animated: true)
self.allShow()
}
}
showRequestLocationServiceAlert()
2. 레이블에 보여질 텍스트를 모델 내에서 처리해보기
연산프로퍼티를 이용해 Model안에서 처리하도록 하였다.
3. Hidden메서드에서 뷰 객체를 동일하게 제어하므로 for each이용
OutletCollection을 이용해 for each를 사용하면 오른쪽처럼 간단하게 수정할 수 있었음.
4. 매개변수를 이용해 allHidden메서드와 allShow메서드 그리고 hud메서드를 하나로 통합.
5. CLGeocoder를 이용해보기
CLGeocoder를 이용해 주소 정보를 가져오면 "대한민국 서울특별시 땡땡구 ~~"이렇게 나오는데 나는 동을 표시하고싶었기때문에 사용하지 않았음.
'코드수정' 카테고리의 다른 글
[코드 수정] TMDB 프로젝트 코드 수정 (0) | 2022.08.06 |
---|---|
[코드 수정] 다마고치 과제 코드 수정 (0) | 2022.08.02 |
[코드 수정] 다마고치 과제 코드 수정 (0) | 2022.07.31 |
[코드 수정] 다마고치 과제 코드 수정 (0) | 2022.07.27 |
[코드 수정] 감정 다이어리, 기념일 계산기 코드 수정 (0) | 2022.07.19 |
댓글
최근에 올라온 글
- Total
- Today
- Yesterday