ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [SWIFT]옵셔널 ?, !, !!
    iOS_swift문법 정리 2020. 6. 16. 18:17

    옵셔널은 왜 사용하는가.

     

    변수 자체에 널값을 허용 해준다.

     

    1. 옵셔널(물음표) ?

    "?" 는 변수나 클레스 뒤에 붙이며 nil값의 허용을 의미한다.

     

    처음엔 나도 왜 만들었는지 그냥 쓰면되지 하고 생각했는데 testNotNull이 nil인 상태에서 프로퍼티 변수나 함수를 쓰면 런타임 오류가 100프로 나기 때문에 최소한 컴파일 전에 100프로 발생할 오류는 막자는 차원에서 나왔다고 한다.... 

     

     

    2. 옵셔널의 사용 

     

    testNull을 사용하려고 했는데 

    아래 콘솔에 Optional("테스트 데이터 입력!")

    로 나온다. ?로 선언 했기때문에 옵셔널에 감싸졌기 때문이다 이를 뽑아 사용하려면 를 붙인다!

     

     

     

    !를 붙이면 데이터를 꺼내서 사용 가능하다 (단, nil인경우에는 앱이 죽을 수 있다.)

     

     

    예제를 통해서 좀더 이해를 해보자.

     

     

    1. test변수에 널을 허용하고 초기값을 입력 하지 않았다.

    2. testFunc함수에 인자로 string? => 즉 널을 허용하는 옵셔널 스트링으로 인자를 받았다.

     

     

    초기값을 넣지 않은 test변수는 쓰레기값 nil 값이라고 보면 된다.

     

    죽어버림..

     

     

     

    !를 빼보았다. 그럼 nil은 nil이라고 나오고 입력된 값은 옵셔널에 들어있다.

     

    ...

    ..

    ..

     

     

    ??의 사용

    ??는 nil을 대비하여 nil일때 초기값을 줄수있다!

    받은 데이터 data

    if data == nil

    {

         string = "죽을순 없으니 초기값을 주자"

    }

    else

    {

         string = data // nil이 아니니 값이 있을꺼임

    }

    print(string)

     

    이렇게 사용했어야 했는데 

     

    옵셔널 변수 ?? "초기값"

    이렇게만 써주면 된다!

     

     

     

    'iOS_swift문법 정리' 카테고리의 다른 글

    Swift[Generic] ... <T>  (1) 2020.07.23
    extension 익스텐션  (0) 2020.06.25
    swift Class AND struct  (1) 2020.06.18
Designed by Tistory.