본문 바로가기

개발/아이오에스

swift] guard문 ....else{...

guard let soundAsset: NSDataAsset = NSDataAsset(name: "sound") else{
            print("음원 파일 에셋 가져올 수 없습니다")
            return
        }

else 앞에 let soundAsset: NSDataAsset = NSDataAsset(name: "sound")  조건이 ture이면 guard문은 그냥 지나가고, false 이면 else 구문 print("음원 파일 에셋 가져올 수 없습니다") 을 수행한 뒤 함수를 바로 종료한다.

 

암묵적인 종료가 아니라 명시적인 종료이므로 return을 적어주는 모습을 볼 수 있다. 없으면 - 컴파일 에러 ( throw라도 사용)

 

guard 문을 사용하면 let soundAsset: NSDataAsset = NSDataAsset(name: "sound") // let으로 받으면서 nil 체크를 하는 동시에 그 값을 else를 통해 사용할 수 있다.

if문을 쓰면 nil 체크 후에 unwrap을 위해 !를 붙여서 쓰거나 if 블럭 안에서 써야한다. -> 이러한 단점을 깔끔하게 해결 -> guard문 

 

출처 https://docs.swift.org/swift-book/

 

'개발 > 아이오에스' 카테고리의 다른 글

swift Cocoa Touch란?  (0) 2020.12.21
swift] AVFoundation, Timer 클래스 이해  (0) 2020.12.21
SWIFT(IOS) 아이콘 뱃지(숫자) 표시하는방법  (0) 2020.12.16
클로저 (Closures)  (0) 2020.12.04
함수(Functions)  (0) 2020.12.03