개발/아이오에스
swift] guard문 ....else{...
dev.jake
2020. 12. 21. 10:28
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문