choco5958
지마의 개발일기
choco5958
전체 방문자
오늘
어제
  • 전체보기 (46)
    • 개발 (34)
      • Java (0)
      • JavaScript (7)
      • Php (4)
      • Ios(Swift) (23)
    • 프론트엔드 (7)
      • Html (1)
      • Css (5)
    • 백엔드 (0)
      • Mysql (0)
      • Oracle (0)
      • MongoDB (0)
    • 서버 (2)
      • Linux (2)
    • 일상 (3)
      • 반려동물 (1)
      • 베이킹 (2)
      • 맛집 (0)

블로그 메뉴

  • 홈

공지사항

인기 글

태그

  • ios#swift#스위프트#조건문#아이폰#애플
  • ios#swift#스위프트#아이폰#클래스#애플
  • ios#swifth#스위프트#열거형#아이폰#애플
  • swift#ios#스위프트#애플#아이폰#init#초기화구문
  • ios#swift#스위프트#아이폰#애플#상속
  • ios#swift#스위프트#프로퍼티#애플#아이폰
  • 자바스크립트#javascript#js#개발#웹개발
  • ios#swift스위프트#애플#아이폰#클래스#구조체
  • ios#swift#스위프트#구조체#문법#애플#아이폰
  • php#linux#soap#리눅스
  • ios#swift#스위프트#애플#아이폰#고차함수
  • php#500error
  • ios#swift#스위프트#아이폰#애플#타입캐스팅
  • ios#swift#스위프트#아이폰#애플#함수
  • ios#swift#스위프트#애플#아이폰
  • ios#swift#스위프트#아이폰#애플#옵셔널체이닝
  • ios#swift#스위프트#클로저#애플#아이폰
  • ios#swift#스위프트#아이폰#애플#프로토콜
  • ios#swift#스위프트#애플#아이폰#try-catch#오류처리
  • ios#swift#스위프트#애플#아이폰#assert#guard

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
choco5958
개발/Ios(Swift)

IOS 스위프트(Swift) 문법 - assert와 guard

개발/Ios(Swift)

IOS 스위프트(Swift) 문법 - assert와 guard

2021. 8. 23. 23:26

assert란?

- 특정 조건을 체크하고, 조건이 성립되지 않으면 메세지를 출력하게 할수 있는 함수

- assert 함수는 디버깅 모드에서만 동작하고 주로 디버깅 중 조건의 검증을 위하여 사용합니다.

 

guard 문이란?

- 뭔가를 검사하여 그 다음에 오는 코드를 실행할지 말지 결정하는 것

- guard 문에 주어진 조건문이 거짓일 때 구문이 실행됨

 

var value = 0
assert(value == 0)

value = 2
assert(value == 0, "값이 0이 아닙니다")

-> __lldb_expr_10/MyPlayground.playground:7: Assertion failed: 값이 0이 아닙니다
Playground execution failed:

error: Execution was interrupted, reason: EXC_BREAKPOINT (code=1, subcode=0x18e02190c).
The process has been left at the point where it was interrupted, use "thread return -x" to return to the state before expression evaluation.

* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BREAKPOINT (code=1, subcode=0x18e02190c)
  * frame #0: 0x000000018e02190c libswiftCore.dylib`Swift._assertionFailure(_: Swift.StaticString, _: Swift.String, file: Swift.StaticString, line: Swift.UInt, flags: Swift.UInt32) -> Swift.Never + 1472
    frame #1: 0x0000000106b48534 $__lldb_expr11`main at playground10-683c0e..swift:0
    frame #2: 0x00000001043731f8 MyPlayground`linkResources + 300
    frame #3: 0x000000018036607c CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 20
    frame #4: 0x0000000180365320 CoreFoundation`__CFRunLoopDoBlocks + 404
    frame #5: 0x000000018035fbc8 CoreFoundation`__CFRunLoopRun + 764
    frame #6: 0x000000018035f3bc CoreFoundation`CFRunLoopRunSpecific + 572
    frame #7: 0x000000018afdd70c GraphicsServices`GSEventRunModal + 160
    frame #8: 0x00000001843f03d0 UIKitCore`-[UIApplication _run] + 964
    frame #9: 0x00000001843f51ac UIKitCore`UIApplicationMain + 112
    frame #10: 0x00000001043732c0 MyPlayground`main + 200
    frame #11: 0x0000000180224554 libdyld.dylib`start + 4

assert(value == 2, "값이 0이 아닙니다") //value가 2로


/*
 guard 조건 else {
   //조건이 false 이면 else 구문이 실행되고
   return or throw or break 를 통해 이 후 코드를 실행하지 않도록 한다.
 }
 */

func guardTest(value: Int?) {
    guard let value == value else { return }
    print(value)  //"2\n"
}

guardTest(value: 2)
guardTest(value: nil)

'개발 > Ios(Swift)' 카테고리의 다른 글

IOS 스위프트(Swift) 문법 - 익스텐션  (0) 2021.08.25
IOS 스위프트(Swift) 문법 - 프로토콜  (0) 2021.08.25
IOS 스위프트(Swift) 문법 - 타입캐스팅  (0) 2021.08.19
IOS 스위프트(Swift) 문법 - 상속  (0) 2021.08.19
IOS 스위프트(Swift) 문법 - 클래스와 구조체의 차이  (0) 2021.08.19
    '개발/Ios(Swift)' 카테고리의 다른 글
    • IOS 스위프트(Swift) 문법 - 익스텐션
    • IOS 스위프트(Swift) 문법 - 프로토콜
    • IOS 스위프트(Swift) 문법 - 타입캐스팅
    • IOS 스위프트(Swift) 문법 - 상속
    choco5958
    choco5958
    안녕하세요. 개발 및 일상 팁 들을 포스팅하는 블로그입니다.

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.