본문 바로가기
iOS/Swift 문법 심화 학습

assert

by 황민우 2022. 1. 28.

정의

assert문은 특정 조건을 체크하고, 조건이 성립되지 않으면 메세지를 출력합니다.

실제 앱 성능엔 영향을 끼치지 않고, 디버깅 모드에서만 동작되는 특징이 있습니다.


선언 형식

- 총 4개의 파라미터를 작성해줍니다.

1, condition : 테스트할 조건을 작성하는 부분입니다. 

2, message : 조건의 값이 false일 경우 출력될 메세지를 작성하는 부분입니다. 기본값은 빈 문자열입니다. 

3, file : 메세지를 출력할 파일의 이름을 작성하는 부분입니다. assert(_:_:file:line:) 이 기본값으로 호출됩니다.

4, line : 출력할 메세지의 라인 수를 작성하는 부분입니다. assert(_:_:file:line:) 이 기본값으로 호출됩니다. 

func assert(_ condition: @autoclosure () -> Bool, _ message: @autoclosure () ->
              String = String(), file: StaticString = #file, line: UInt = #line)

 

 

사용

   - assert 메서드 문법은 실제 앱 성능에선 영향을 끼치지 않기 때문에,

   내부 테스트 과정에서 특정 조건이 성립되는지 검증을 할 때 유용하게 사용될 수 있습니다.

 

예제1

   - 간단하게 상수를 사용해 작성해 보았습니다.

   - myNum의 값은 1 인데, assert문의 조건식은 myNum의 값이 0 으로 테스트를 합니다.

   - 실행결과가 어떻게 될까요?

let myNum: Int = 1
assert(myNum == 0, "error!")

   - 실행결과입니다.

   - error! 라고 입력한 메세지 부분을 제외하곤 기본값을 통한 값이 출력됩니다.

 

 

예제2

  - 다음은 함수에 적용한 assert 예제입니다.

  - 조건식이 일치할 때와 일치하지 않을 때의 경우를 나누어 결과를 확인해 보겠습니다.

  - 값이 True일 때 예제입니다.

func assertTest(_ num: Int){
    assert(num == 20, "error!!")
    print("myNum is \(num)")
}

assertTest(20)


실행결과
// myNum is 20

  - 값이 False일 때 예제입니다.

func assertTest(_ num: Int){
    assert(num == 20, "error!!")
    print("myNum is \(num)")
}

assertTest(10)

실행결과
// Assertion failed: error!!: file main.swift, line 2

 


내용출처

https://developer.apple.com/documentation/swift/1541112-assert

https://0urtrees.tistory.com/195

'iOS > Swift 문법 심화 학습' 카테고리의 다른 글

값 타입과 참조 타입  (0) 2022.01.31
extensions  (0) 2022.01.30
guard  (0) 2022.01.28
Initializer  (0) 2022.01.27
타입캐스팅  (0) 2022.01.26

댓글