Toy Project/Netflix app extension(iOS)

7. 받아온 데이터를 Parsing하고 TableView에 띄우기

개발자킹콩 2021. 5. 16. 16:37

 

이제 받아온 데이터를 searchTerm 넣기만 하면 된다.

 

 

현재 출력된 데이터는 snapshot.value에 해당하는 데이터이다.

우리가 필요한 것은 term과 timestamp를 키로 가지는 Dictionary 배열이 필요한 것이다.

우선 Dictionary array로 type casting을 시도하자.

 

 

우리는 사실 id를 필요로 하지는 않는다.

그래서 searchHistory의 values만 뽑아내서 사용할 것이다.

 

 

 

 

 


 

 

 

 

그JSON Decoder로 decode하여 [SearchTerm]으로 parsing 할 것이다. 

 

 

 

 

다음과 같이 searchHistory.values를 Array로 type casting을 하고 decode할 데이터로 넣는다.

이때 SearchTerm의 배열형으로 parsing을 한다.

 

 

 

 

위에 주석 처리된 코드과 밑의 코드는 같은 역할을 한다. 

error가 발생하지 않음이 자명하다면 위와같이 구성해도 괜찮다.

 

 

데이터는 다음과 같이 출력되었다. 

 

 

 

 

 


 

 

 

 

 

그렇다면 이제 searchTerms를 self.searchTerms에 넣고, HistoryViewController에 접근해서 화면이 보여질때마다 reload시키면 된다.

 

 

 

 


 

 

 

만들고 보니 사이즈도 너무크고, 구분자도 없었으면 더 좋을 것 같아서 수정한다.

 

 

이쁘게 잘 완성되었다.

 

 

 

 

 

 


 

 

 

 

 

그런데 여기서 이상한 점이 존재한다.

 

Totoro와 Night의 나열의 순서가 뒤바꼈다는 점이다. 사실 Dictionary는 배열과 다르게 순서가 존재하지 않는다.  단지, key로 데이터를 구분할 뿐이다.

 

그렇다면 데이터가 추가되어도 최신데이터가 상단에 표시되지 않으므로 sort 하자.

 

 

firebase에 데이터가 올라간 시간을 기준으로 sort시켜서 최신 데이터를 상단에 추가하도록 완성했다.

 

 

 

 

 

이렇게 MyNetflix Application을 마무리하겠다.