ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 210419 - TIL
    TIL/2021 2021. 4. 20. 03:17

    Git

     

    지금까지 Git을 사용해오고 있었지만 딱히 버전을 관리할 일이 없었고 오류가 크지 않아서 사용하던 것만 사용했는데

    오늘 문제가 발생했다!ㅠㅠ

    열심히 작업을 하고 문제없이 push까지 마쳤는데 수정하지도 않은 부분에서 문제가 발생했다.

     

    왜??

    으음?? 갑자기 건드리지도 않은 ViewController를 못 찾는다니??

    일단 AccessoryView로 추가시킨  birthdayDatePicker가 문제인 줄 알고 outlet을 다시 연결해보고 해 봤는데 이제 다른 view로 해당 오류가 넘어갔다. 그래서 4개쯤 하다 이건 outlet문제는 아닌 듯싶어 ViewController class 다시 연결해보고 여러 쑈를 하다가 안 되겠다 이전 버전으로 돌리고 기존에 push한건 다시 작성하지 뭐 하고  돌아가려 했는데.. 이전 버전으로 reverse 한다거나 이런 기초적인 방법에 대해서 공부가 필요하겠구나 느꼈다.

    git에 대한 이해가 확실히 부족해서 어느 부분을 공부해야 할지 감을 못 잡아 branch와 merge 하며 conflict를 수정하는 방법을 공부하게 됐다.

    Branch에서 정상적으로 작동하는 것을 보고  storyboard에 문제가 있는 거 같은 부분은 Theirs로 merge 했는데 이후에도 계속 같은 문제가 발생했다.....

    지금 와서 생각하면 혼자 하는 프로젝트이니 그냥 reverse로 날리고 다시 작성하면 됐을 텐데.. 이렇게 git공부에 대한 필요성을 느끼며

    문제점이 뭔지 알아보았다.

    갓 XCode

     

    문제는 건들지도 않은 Target이 해제되어있었다. 이게 혼자서 체크가 빠져서 생기는 문제일 거라고는 상상도 못 했는데 다음부터는 target도 확실하게 설정되어있는지 잘 살펴보아야겠다.

    그리고 git 공부를 처음부터 시작하기로 했다.


     

    Blob container에 저장한 이미지 URI가 저장되지 않는 문제

     

     

    container에는 저장이 됐는데
    URI를 가져오지 못했다.

    잘 저장되고 있는 줄 알았는데 확인을 해보니 container에는 잘 저장이 되는데 DB에는 URI가 저장이 안 되고 있었다.

    문제는 request를 보낼 때 있었다. 

     

     

    BlobManager의 upload 메서드는 completion을 사용하고 있었는데 request 할 때 completion안에서 request를 보내거나 DispatchGroup을 사용해서 URI을 가져온 다음 request를 보내야 하는데 둘 다 고려하지 않고 그냥 코드를 작성해서 URI를 가져오기 전에 request를 보내 Db에 저장이 되지 않은 것이었다.

    문제를 해결하기 위해 두 방법 중에 Completion에 method로 호출하는 방식을 택했다.

    Completion handler와 DispatchGruop에 대한 이해가 부족해서 발생한 문제이니까 이 두 개를 공부하도록 하자.

     

     


     

     

    collectionView(_:willDisplay:forItemAt:) 사용방법

     

     

    cell이 하나만 선택되어야하는데

     

    이 문제는 cell을 선택, 해제하면  나타나는 애니메이션을 collectionView(_:didSelectItemAt:)  collectionView(_:didDeselectItemAt:) 에서 구현을 하면서 나타난 문제인데

    하나만 선택이 되어야 정상인데 gif와 같이 화면을 넘어가서 선택하면 이전에 선택한 cell이 선택된 상태로 남아있게 되는 문제였다.

    문제를 어떻게 해결해야 하나 열심히 stackoverflow를 돌아다녔는데 나와있는 해결책이 나에게는 도움이 되지 못했다.(내가 해결 못한 것일 확률이 높지만)

    collectionView(_:didDeselectItemAt:)를 구현하지 않고 collectionView(_:cellForItemAt:)에서 collectionView를 reload를 하며 구현하는 방식이었는데 애니메이션 구현에 문제가 해결하지 못하고 다시 돌아왔다.

    그래서 알아본 게 collectionView(_:willDisplay:forItemAt:)

    사용해보지 않은 delegate 메서드였다. 사용을 해보니까 cell이 나타날 때 이 메서드에서 구현한 방식으로 초기화가 가능했다.

    하지만 내가 생각한 해결방법으로는 선택되어 있는 것도 선택 해제시킬 뿐이었다ㅠㅠ

    이 문제는 아직도 해결하지 못하고 있어서 더 생각을 해봐야 할 거 같다.


     

    728x90

    'TIL > 2021' 카테고리의 다른 글

    210422 - TIL  (0) 2021.04.23
    210421 - TIL  (0) 2021.04.22
    210416 - TIL  (0) 2021.04.16
    3월 1주차 회고  (0) 2021.03.08
    210207 - TIL  (0) 2021.02.08
Designed by Tistory.