지금까지 Xcode 6 베타에서는 꼬박꼬박 Yosemite(10.10) SDK가 포함되어 있었는데, 정작 정식판 후보버전인 GM에는 이 SDK가 빠져있다. 그래서 스위프트(swift)언어를 이용하는 OSX용 프로젝트를 빌드하려하면 SDK가 없다거나 혹은 Deploy 버전이 맞지 않는다는 오류가 발생한다.
이제 Xcode 6가 GM이 되면서 더 이상 베타가 아니게 되었다. GM 버전은 최종 릴리즈 후보로써 큰 문제가 없다면 바로 정식릴리즈가 되는 버전이다. 그런데 6 GM 버전에는 Swift로 맥(Cocoa) 앱을 개발 할 수 없다는 문제가 있다. 그래서 6.1 베타를 찾아보게 되었다.
스위프트(Swift)의 옵셔널(Optional)은 '값이 없음(No Value)' 이라는 것을 심어주기 위한 기능이다. 단순하게 사용하려 한다면 그저 nil 초기화 여부를 조사하기 위한 용도로써 쓸 수 있겠지만, 액세스라던가 옵셔널 체인(Optional Chain) 등등을 아무런 지식 없이 쓰다보면 컴파일 에러나 런타임 에러를 종종 보게 될 것 같다. 그래서 약간의 시험과 더불어 개념을 조금 더 파고 들어가 보고자 한다.
좀 특별한 경우겠지만, 특정 클래스의 오브젝트를 생성 할 때 조건을 만족하지 않으면 생성되지 않고 None이 되게 하고 싶은 경우라고 가정하자. 이렇게 하면 클래스 오브젝트 생성을 이용해 밸리데이션(Validation)이 가능해진다. 하지만 파이썬의 클래스 생성자격인 __init__ 은 값을 리턴 할 수가 없다. (정확히는 None만 리턴이 가능하다) 사실 대부분의 OOP에서 클래스의 생성자는 리턴을 가질 수 없다. Objective-C 같이 특이한 경우를 제외하고는...