Swift에서 as! 를 사용하는 규칙

2017-02-06
9 Views

as! 라고 선언하면, 다운캐스트할 수 없는 경우 프로그램을 종료시키는 것을 말한다.

이를 줄이면 다음과 같다.

위 두가지 모두 동일한 내용으로 as!를 사용하는 것이 좋다. 형이 줄어들고 코드도 간결해져 이해하기 쉬워진다. 긴 코드는 솔직히 고통스럽고 무엇인가 잘못된 개발을 하고 있다는 것을 나타내는 것같다. 다운캐스트가 실패하는 경우에 종료하는데 if문을 사용하는 것이 전반적인 코드의 혼란을 야기해서 진짜 이슈를 지나칠 수 있다. 그러나, as? 또는 as!으로 다운캐스트를 하는 시점에서 해당 프로그램에서 잠재적인 문제가 있다고 생각할 수 있도 있어 정말 다운캐스트가 필요한지 꼭 곰곰히 생각해보고 결정하자.

as!의 장점

다운캐스팅에 실패하면 이를 회복할 수 없을 때 바로 프로그램을 종료할 수밖에 없는 경우 as!를 하면 좋다. 캐스팅에 실패하면 프로그램을 종료하는 것이 as!이다.

as?의 장점

다운캐스팅에 실패해도 처리를 계속해야 된다면 as!를 사용하면 안된다. 예로 ViewController에 작성되어 있는 사용자와의 상호작용을 담당하는 경우 다운캐스팅이 실패하면 프로그램이 오류가 날수 있다는 것을 고려해서 알맞은 오류 복구방법을 제공할 수 잇ㅋ어야 한다.

 

Facebook Comments

You may be interested

Xcode 기능 확장(Extension) 제거하기
Xcode
shares3 views
Xcode
shares3 views

Xcode 기능 확장(Extension) 제거하기

MJ Kim - 3월 18, 2017

Mac에서 Xcode Source Editor Extension등의 기능확장을 사용하다보면 디버깅시 시스템 환경 설정의 확장이 앱에 등록되는 경우가 있다. 계속해서 목록이 남아 있기…

iOS App Store Review(앱 심사약관) 번역
Swift 3.0
shares111 views
Swift 3.0
shares111 views

iOS App Store Review(앱 심사약관) 번역

MJ Kim - 3월 15, 2017

App Store Review를 번역했다. 사실 이번에 좀 애매한 리젝을 당해서 그걸 이해하고자 정리해본다. 원문링크: https://developer.apple.com/app-store/review/guidelines/ 1. 이약관은? 1.1 앱 개발자로서 프로그램의…

Raspberry Pi 타이머 On/Off 전원제어모듈 RPi1114-Raspberry Pi
IoT by Raspberry Pi
shares7 views
IoT by Raspberry Pi
shares7 views

Raspberry Pi 타이머 On/Off 전원제어모듈 RPi1114-Raspberry Pi

MJ Kim - 3월 04, 2017

RPi1114-Raspberry Pi전원제어 모듈이 있다. 이 제품은 40Pin GPIO핀헤더에 연결하여 사용하는 모듈로 Cortax-M0마이크로컨트롤러 LPC1114를 내장하고 Raspberry Pi의 시작과 정지 순서등을 프로그래밍할…