이 문제는 내가 포트폴리오를 만들면서 직면한 문제였다.
현재 좌표를 기반으로 가져온 라멘 가게들의 검색 결과
가게 cell을 눌렀을 땐 문제가 없으나, 다시 뒤로가기를 눌렀을 때,
오류가 발생하였다!!
Object has been deleted or invalidated.
객체는 이미 삭제되었거나 유효하지 않습니다.
음.. 처음에는 대체 뭐가 문제인지 종잡을 수 없었다.
왜냐면, 검색 ViewController에서 불러온 정보와
가게 정보 ViewController로 넘어간 정보와 일치하다고 생각했기 때문이다.
하지만, 내가 간과한 점은 각 객체마다 realm에 저장하기 위해서
id를 부여했다는 점이었다.
불러온 데이터는 각 객체마다 id를 부여받게 된다.
그리고, 데이터를 불러오는 함수(getRamenData)는
검색 ViewController의 viewWillAppear 함수에서 실행된다.
그러므로, 검색 VC가 나타나기 전에 해당 함수는 실행된다.
그래서, 여기에서 새로 불러온 데이터가 전에 불러온 데이터와의 차이에서
id가 다르지 않을까 라는 생각을 했다.
가게를 누르고 나오는 id와
뒤로 가기를 눌렀을 때 (데이터를 불러올 때) 나오는 id가 서로 다르다는 것이다!
그래서 각 id를 print해보았다.
id가 서로 다르다는 것을 확인했다.
그러면, 데이터들을 보여주는 데이터가 담겨있는 배열들을
데이터를 불러오기 전에 비워줌으로서,
id를 초기화시켜주었다.
배열을 데이터를 불러오기 전에
비워줌으로써 객체가 사라졌다고 하는 오류는
사라지게 되었다!
'Trouble Shooting' 카테고리의 다른 글
LaunchScreen이 나오지 않을 때 (0) | 2023.06.13 |
---|---|
위치 권한을 .authorizedAlways으로 설정했을 때의 오류 (0) | 2023.06.12 |
Model 변수 이름을 일치하게 썼음에도, Parsing이 이루어지지 않을 때 (0) | 2023.06.12 |
글씨체(font)가 적용이 안될 때 해결하는 방법! (0) | 2023.05.25 |
JSON 파싱이 되지 않을 때 (0) | 2023.04.17 |