내일배움캠프 7기 Day22 TIL

Daisy Kim·2023년 8월 8일
0

24시간이 모자라 ⏱️

개인과제를 진행중이다. 어제 글에 썼듯이 테이블뷰에 사용자 입력 데이터가 저장되지 않는 문제를 어떻게 해결하면 좋을지 감이 오지 않는다.

해설영상을 세번이나 돌려보며 따라 작성한 코드에 잘못된 곳은 없나를 찾는데 무엇이 문제인지 알 수가 없다.

조원분들께 코드리뷰를 부탁드려봤지만 내가 스스로 작성한 코드가 아니어서 어떤 식으로 짜여졌는지 설명을 못하기에 이해할 수 있는데 한계가 있어 결국 다시 스스로 해결해야하는 원점으로 돌아왔다.

현재 내가 맞닥뜨린 문제점을 정리해보자면

  1. 작성한 더미데이터가 테이블뷰에 표시되지 않는다.
  2. 사용자 입력 데이터 추가가 되지 않는다.
  3. 스위치 토글 역시 나타나지 않는다.
  4. 데이터가 표시되지 않음 +@ 로 텍스트에 스트로크(취소선)을 넣었을때 컴파일 에러가 발생한다.

한 조원분께서 왜 그런 버그가 생겼는지 알 것 같다 하셔서 시간이 되실 때 설명을 부탁드렸다. 그 설명을 듣고 진전이 있었으면 좋겠다.

결국 입문 강의와 해설영상을 맡으신 튜터님께 직접 질문을 드렸다.
원인은 너무나 어이없게도 컴포넌트들이 제대로 연결되어 있지 않았고, 뷰와 뷰 컨트롤러의 1:1 매칭이 적절히 이루어져있지 않았던 것!! 🤦‍♀️🤦‍♀️🤦‍♀️

컴파일 에러를 따라 원인을 찾고 그것들을 차례대로 하나둘씩 처리하니 오류가 해결되었다. 👀
급체가 내려가듯 체증이 쑥 가셨다.

옛부터 말씀하길 '급할 수록 돌아가라'고 했다.

이번에는 초보자의 입장에서 원인을 못찾았을 수도 있다고 생각하지만 너무 사소하고 어이없는 실수였으므로 다음에는 해결해야겠단 다급한 마음에 꼼꼼히 살피지 않는 우를 범하지 말자.
빠뜨린 것은 없는지 작성한 코드를 다시 한번 보고, 두번 보고, 세번 보자!!!

저녁식사 후, 정예반 미션 3가지 중 한가지를 수행하기로 했다.

화,수,목 3일동안 하루에 미션 하나씩 수행할 예정이다.
주어진 미션은

reduce() 함수를 나만의 생각으로 정의한 코드를 작성해보는 것!

우선 reduce 함수가 어떤 기능을 하는지부터 공부해봐야겠다. reduce 함수는 고차함수의 한종류이며

고차함수란

다른 함수를 전달인자로 받거나, 함수실행의 결과를 함수로 반환하는 함수를 뜻한다.

고차함수의 종류
ex) map, filter, reduce, forEach, compactMap, FlatMap 등이 있다.

그 중에서도 reduce 란

정의한 클로저를 사용하여 기존 컨테이너의 요소를 결합한 결과를 반환한다.

func reduce<Result>(_ initialResult: Result, _ nextPartialResult: (Result, Element) throws -> Result) rethrows -> Result

파라미터(매개변수)

  • initialResult
    초기값으로 사용할 값을 넣으면 클로저가 처음 실행될 때, nextPartialResult 에 전달된다.
  • nextPartialResult
    컨테이너의 요소를 새로운 누적값으로 결합하는 클로저

리턴타입

  • 최종 누적 값이 반환되며, 컨테이너의 요소가 없다면 initialResult 의 값이 반환
profile
Technology proderit homini

0개의 댓글