중복된 코드 제거?

주방·2022년 7월 7일
0

Swift

목록 보기
3/17

#1. Checklist

  • Cocoa Touch Framework
  • BreakPoint
  • Function vs. Method
  • Parameter vs. Argument
  • Argument Label vs. Parameter Name
  • Wildcard Patter
  • Optional(!, ?, Optional Chaining)
  • Any
  • Outlet Collection


#2. Assignment

과제 세부 요구사항은 Notion에 별도 저장하였음.

Assignment 1. LEDBoard Project

  • 적용사항
    • 키보드 내려가도록 하는 방법 2가지 시도(UITextFieldDelegate, Did End On Exit)
    • view touch 이후 isHidden을 구현한다.

Assignment 2. Netflix project 수정

  • 적용사항
    • 코드 리팩토링(옵셔널, 메서드, outletcollection)


#3. 회고

  • Assignment 1. LEDBoard
    • keyboard - 탭(동작)에 따른 반응들을 작성하는 것은 잘 익혀놓으면 여러 기능을 구현하는데 도움 될 것으로 생각되었다.
    • 탭을 통해 textviewfield 외 다른 button 묶음의 뷰를 컨트롤 하는 게 쉽지 않았다. isHidden을 적용해서 뷰 묶음이 숨겨졌다, 보여졌다 하는 것을 어떤 값의 유무를 확인해서 적용하려고 했다. 그래서 하단의 코드를 1차적으로 적용했으나 구현이 안되었다.
    • 사라지기만 하고 다시 탭했을 때, 등장하지 않았다. 그래서 if 구문 내 다시 드러나게 하려고 했으나 터치 동작이 발생하면 계속 true로 빠지게 되어 문제 해결이 어려웠다.
    • 단순하게 터치하여 사라진 값이 반대의 값을 갖는 식으로 적용하는 것으로 문제 해결했다.(이것을 생각못해 3시간동안 Google을 헤엄친 나는 마린보이)
//실패 코드
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {

  let touch: UITouch? = touches.first
  if touch?.view != self.textFieldView{
    self.textFieldView.isHidden = true
  }
}

//성공코드
self.textFieldView.isHidden = !(textFieldView.isHidden)
  • Netflix Project
    • 각 textField 마다 중복된 표현이 있었으나 이를 함수 작성시 받아야 할 정보를 파라미터로 처리 후에 필요한 내용만 호출하게 되면 보다 간편한 표현이 가능하다는 것을 알 수 있었다.
    • 더불어 IBOutlet 역시 Outlet Collection을 통해 for문을 효과적으로 쓸 수 있다.
@IBOutlet var textFieldOutletCollection: [UITextField]!

func textFieldStyle(){
	for textStyleItem in textFieldOutletCollection {
      textStyleItem.layer.cornerRadius = 5.0
      textStyleItem.layer.borderWidth = 1.5
      textStyleItem.layer.borderColor = UIColor.lightGray.cgColor
      textStyleItem.borderStyle = .line
      textStyleItem.backgroundColor = .gray
      textStyleItem.keyboardType = .default
 	}
}
  • 반성: 과제 뿐 아니라 학습을 위한 여러 키워드가 있었다. 그러나 과제의 범위를 확인 후 생각보다 빠르게 적용하고, 학습을 하고자 하였다. 역시, 구현은 내 마음과 생각대로 되지 않는다. 한줄을 뽑아내기 위해 3시간을 헤엄쳤다. 심폐지구력의 상승. 건방지게 빨리 구현할 수 있다라는 착각하지 말고, 먼저 중요하다 여겨지는 개념을 학습 후 구현을 하는 쪽으로 습관을 들이자.

0개의 댓글