Save selected city
kimhyeri opened this issue · 3 comments
kimhyeri commented
UserDefault 활용
- Coordinate구조체 형식으로 저장
- 현재 위치는 저장하지 않으며, 검색으로 찾은 city들만 저장함.
- 현재 위치는 항상 index 0 에 저장하기 때문에 저장할 Coordinate는 index 0을 제거한 나머지를 저장하는 형태로 진행함.
if myCities.count > 1 {
let exceptData = myCities.remove(at: 0)
UserDefaults.standard.set(try? PropertyListEncoder().encode(exceptData), forKey:"cities")
}
kimhyeri commented
위에 myCities자체 검사 할 필요가 없었음.
유저가 선택한 도시만 myCities에 추가할거고 current location은 저장할 필요 없음.
그래서 이렇게 변경함.
private var myCities:[Coordinate] = [Coordinate]() {
didSet {
UserDefaults.standard.set(try? PropertyListEncoder().encode(myCities), forKey:"cities")
}
}
current location은 뷰 뜰때 항상 업데이트 함.
myCities에 저장은 안함.
kimhyeri commented
내 위치에 대한 날씨는 항상 상단에 놓아야 함.
currentLocation lat lon이랑 response.body.coord의 lat lon (위 경도) 체크해 줌.
kimhyeri commented
Solved Issue 🙆♀️