ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 201026 - TIL
    TIL/2021 2020. 10. 27. 03:08

    오늘은 현업 개발자 분과 만나서 도움이 되는 말씀을 듣고 궁금했던 점을 질문하는 자리가 있었다.

    아주 많은 도움이 됐다!!!

     

    그래서 오늘은 문법공부를 하지 못했다...

     

    서울까지 지하철을 타고 가는 동안 Clean Code 책을 읽었다. 왕복 3시간쯤 걸려서 앉아 책 읽을 시간이 많아서 좋았다.

     

     

     

    Navigation Controller를 이용해서 class를 만들지 않고 화면을 구상하는 방법을 계속 고민 중인데 해결방법을 못 찾겠다 ㅠㅠㅠㅠ

    class를 만들지 않았으니 ChildViewController에 Label.text에 접근할 방법이 없다고 생각해서 그럼 toNav버튼을 누르면 아래에 만들어둔 TempViewController가 대신 pop 되도록 해볼까?? 생각을 하고 구현을 시도해보는데 변화가 없다.

     

     

    @IBAction func pushChildViewBarItem(_ sender: Any) {
            let castedTempViewController = TempViewController() as UIViewController
            navigationController?.pushViewController(castedTempViewController, animated: true)
            navigationController?.popToViewController(castedTempViewController, animated: true)
        }

    toNav를 action으로 연결하고

    TempViewController를 업캐스팅한후

    pushViewController(anumated:), popToViewController(animated:) 메서드에 넣어봤는데 변화가 없었다.

    아무래도 UINavigationController에 대한 이해가 아직 부족한 거 같다.

     

    그리고 또 하나 든 생각! 메서드 호출식에서 옵셔널 체이닝이 붙으면 어떻게 될까??

     

    리턴형이 있다면 옵셔널 리턴형이 되는 건 알기 쉽다.

    리턴형이 없다면 ()?를 리턴하고 메서드 내부에 코드는 실행이 되는 거 같다.

     

     

    var optionalEemtyStr: String? = ""
    
    extension String {
        func sayHello() {
            print("Hello")
        }
    }
    optionalEemtyStr?.append("Hello")
    optionalEemtyStr?.sayHello()
    
    let appendedStr = optionalEemtyStr?.appending("Hello")
    
    appendedStr + "Swift"                                    // Error!!

    hello가 잘 출력되는 거 보니 옵셔널 체이닝에서 앞부분이 nil만 리턴을 하지 않는다면 메서드도 문제없이 돌아가는 거 같다.

     

    메서드를 잘못된 것을 사용하는 거 같다... 뭐가 문제인지 다시 생각해보자

    728x90

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

    201028 - TIL  (0) 2020.10.29
    201027 - TIL  (0) 2020.10.28
    201024 - TIL  (0) 2020.10.25
    201022 - TIL  (0) 2020.10.23
    201021 - TIL  (0) 2020.10.22
Designed by Tistory.