iOS 캠프 TIL - 2020.11.06 금

Updated:

학습내용

옵셔널 - 동영상 강의

암시적 추출 옵셔널

  • nil을 할당하고 싶지만, 옵셔널 바인딩으로 매번 값을 추출하기 귀찮거나 로직상으로 nil 때문에 런타임 오류가 발생하지 않을 것 같다는 확신이 들때 사용
  • 일반 값처럼 사용할 수 있으나, 옵셔널이기 때문에 nil도 할당 가능
    • 연산 가능, 일반 변수와도 연산 가능
  • nil이 할당되어 있을 때 접근하면 런타임 오류 발생
  • 옵셔널 바인딩 사용 가능

옵셔널

  • 연산 불가능, 같은 옵셔널 변수와도 연산 불가능
  • 옵셔널 바인딩 사용 해야 함

교육

암시적 추출 옵셔널을 사용하는 이유

  • 스위프트만으로는 필요 없을 수 있지만, 타 언어(C, ObjC)와 호환하려다보니 필요하게된 개념
  • 클래스를 선언하려면 프로퍼티들에 값이 있어야함
    • 하지만 특정 인자의 값 없이 만들고 싶으면 옵셔널로 사용
    • 암시적 추출 옵셔널로도 사용가능

aasert()

  • 테스트 코드로 사용
  • 릴리즈에는 동작하지 않음, 디버깅에만 동작함
  • 괄호안의 내용이 참인지 확인 후 거짓이면 에러

play kahoot

  • 리눅스는 커널이다. OS가 아님
  • git reset: 커밋된 파일을 지움, 3가지 옵션이 있음
    • soft: 커밋된 파일을 스테이지로 돌려놓음 -> 커밋하기 전 상태로 돌아감
    • mixed(default): 커밋된 파일을 워킹 디렉토리로 돌려놓음 -> add 하기 전 상태
    • hard: 커밋된 파일중 tracked된 파일을 워킹 디렉토리에서 삭제
  • git revert: 이전 커밋을 남겨둔 채 새로운 커밋을 생성
    • 하나의 브랜치를 여러명이 공유한다면, 이전 커밋을 수정할 때 revert사용 하는것이 커밋 히스토리가 바뀌지 않아서 충돌 발생하지 않음




묵찌빠 게임 코드 리뷰

스위프트에서 삼항 연산자 사용의 장점과 단점?

장점은 코드를 간결하게 보이게 합니다. “if 조건 {참일때} else {거짓일때}” 구문을 “조건 ? 참일때 : 거짓일때” 한 줄로 바꿀 수 있습니다.

하지만 그 한 줄의 길이가 길다면 오히려 가독성이 안 좋아 질 수 있으므로 고려해서 사용해야 할 것 같습니다. 스위프트에서 변수의 이름을 지을 때 누구나 이해하기 쉽도록 단축어를 자제하고 풀어쓰는 것이 권장되어 자칫 삼항연산자가 사용되는 라인이 길어져 알아보기 힘들 수 있습니다.

Leave a comment