하루에 0.01%라도 성장하자

Develop/iOS

Swift assert 와 guard

뚠님 2019. 5. 10. 17:42
728x90
반응형

Swift

 

assert
  • 디버깅 모드에서만 동작한다
  • 배포하는 애플리케이션에서는 제외된다.
  • 예상했던 조건의 검증을 위하여 사용된다.

사실 이부분이 맘에 든다. 여러 언어들은 검증을 위해 Log를 찍는데 이게 사실 코드를 더럽히는 주된 요인이다.

assert를 이용해서 debug를 하면 보다 더 정확하고 안전한 앱이 개발 될 수 있을 것 같다.

 

var num : Int = 1;

assert(num == 1, "num != 1"); // num이 1이 맞을경우는 무시, 1이 아닐경우는 "num != 1" 출력 후 중지

 

assert은 디버그를 보다 쉽게 할 수 있도록 해준다.

 

guard

 

  • 잘못된 값의 전달 시 특정 실행구문을 빠르게 종료
  • 디버깅 모드 외에 다른 조건에서도 동작된다.
  • guard는 else와 return, break가 꼭 있어야 한다.
  • 타입캐스팅, 옵셔널에서 자주 사용된다.
guard let tempValue = age,
    tempValue < 100, // tempValue값이 100보다 작고 0보다 크지 않다면 종료하라는 의미다.
    tempValue >= 0 else {
    	print("잘못 입력되었습니다.");
        return;
}

// tempValue값이 100 미만이 아니라면 return 처리
guard tempValue < 100 else {
    return;
}


//위 guard 문구가 아래 if문구와 같은 의미이다.
if tempValue < 100 {

} else {
    retrun;
}

 

 

728x90
반응형

'Develop > iOS' 카테고리의 다른 글

Swift 익스텐션  (0) 2019.05.13
Swift 프로토콜 (Protocol)  (0) 2019.05.10
Swift assert 와 guard  (0) 2019.05.10
Swift nil병합 연산자  (0) 2019.05.10
Swift 이니셜라이저와 디이니셜라이저 ( init and deinit )  (0) 2019.05.10
Swift 클래스의 상속  (0) 2019.05.10