[iOS] 시간표 프로젝트 - 6

한지석·2022년 1월 29일
0

iOS

목록 보기
6/12

오늘 블로그에 쓸 추가된 기능은 --> tableView를 어떤식으로 구현했는지 설명하기 전..

굉장히 시행착오가 많았다. 안되는 기능을 구글링해 찾아보려고 모든 페이지를 뒤져보기,, iOS 개발자들이 모여있는 오픈카톡에도 물어보고.. 굉장히 힘들었다. 가장 힘들었던 점은 주변에 iOS 개발자가 없다보니 내가 하는 방향이 맞는지를 알기가 어렵다는 것이다.

어느 기능이 구현이 되고, 그 구현된 기능이 문제가 생기지 않더라도 내가 작성한 코드가 좋은 코드인지 판단하고 싶은데,, 물론 아직 욕심이기는 하다. 모르는 것이 너무 많고, 맨땅에 헤딩 중이라고 생각중이다.

감사한 사람들도 많은 것 같다. 뭔가를 바라지 않고 자기일인냥 잘 도와주는 익명의 개발자분들, 또한 다른 파트임에도 관심있고 나보다 더 열심히 찾아주시는듯 한 팀장님도 감사하다. 열심히 해야겠다.

UITableView

첫 번째 문제

나는 현재 화면 전환을 navigation Controller로 진행중이다.
테이블뷰 파일을 만들기위해 Tableview Controller 파일을 만들고 navigation Controller방식으로 화면 전환을 시도했으나.. 화면 전환이 되지 않았다. 이유는 view Controller로 전환이 이루어지는데 테이블뷰 컨트롤러로 시도했기 때문이다. 정확한 이유는 아직 잘 모르지만 지금은 이래서 안된다! 정도만 알고 넘어가려 한다.

두 번째 문제

커스텀셀로 View Controller를 구성했고, 내가 하려는 방식은
클래스에 배열 선언 -> 배열 내부에 데이터베이스를 삽입 -> 테이블 뷰로 로드
간단하다면 간단한데, 방법을 잘 몰랐다. 어떠한 방식으로 배열에 데이터베이스값을 넣을 수 있는지를 몰랐다. 그래서 찾아낸 방법이

위의 코드다.
처음엔 그냥 for course in courseDB { } 방식으로 넣어주면 될 것이라 생각했는데.. EXC_BAD_ACCESS에러가 자꾸 떴다. 물론 아직도 원인은 잘 모르겠다. 프로젝트를 진행하다보면 알게되리라 생각한다. 위의 코드에 다른 사연이 또 더 있다.

for i in 0...readCnt 부분이 원래 readCnt가 아닌 실제 DB 카운트를 실셈해서 넣었다. 왜냐면 저 카운트를 내부 DB에서 불러보려고 했는데(courseDB.count) 또 EXC_BAD_ACCESS가 떠서 카운트하는 방법을 계속해서 찾아봤으나.. 잘 나오지 않았다. 그래서 계속 헤매이던 와중 팀장님이 외부(firebase) DB의 카운트를 내부에 넣어서 그걸 불러오면 어떨까라고 했다. 그래서 그 방식대로 적용시킨 코드가 위의 코드다.

이 이외에도 많은 난관들이 있었으나 위의 문제는 2일 이상을 고민하던 것이어서.. 써봤다. 앞으로는 사소한 에러라도 좀 기록해놓는 습관을 가져야겠다.(기억력을 너무 믿으면 안될 듯 하다.) 위 코드는 테이블뷰에 데이터를 호출해주기 위한 작업이다. 이렇게 완성된 코드를 실행해보면 ...-! 이런식으로 강의들이 불러와진다 ㅎㅎ. UI는 조금 더 손대봐야 겠지만.. 나는 지금의 결과도 굉장히 만족스럽다.

다음 포스트에서는 학년 별 수업을 필터링하는 과정에 대해 쓸 것 같다. 지금의 시간들이 정말 나를 성장시켜주는 느낌이 들어 만족스럽다.
profile
한지석일대기

0개의 댓글