검색결과 리스트
글
[swift2.2] Xcode 7.3 Swift 언어 변경사항
Swift
2016. 3. 24. 00:10
Xcode7.3 Release Notes
Playground
- iOS, OS X의 Live view는 사용자 인터랙션을 지원합니다.
- rich comment가 인라인 video display를 지원하도록 개선되었습니다. Video 태그를 사용해 비디오 파일을 읽어올 수 있으며, 대체 텍스트, 커스텀 poster 프레임, width, height 스펙에 대한 옵션을 제공합니다. Markup Formatting Reference. 의 Video 챕터 참고.
- XCPlaygroundPage.captureValue(_:withIdentifier:) 가 deprecated 되었습니다.
Swift
- 새롭게 지원하는 #if swift(>=x.y) 구문을 사용해서 빌드 환경을 구분할수 있습니다. inactive 분기문에 있는 코드는 파싱되지 않고, 문법진단에서 제외되기 때문에 같은 파일에서 다른 버전의 swift 소스코드를 혼합하여 사용할 수 있습니다.
- 모든 slice type은 removeFirst() 와 removeLast() 메서드를 갖습니다.
C 의 익명구조체들은 swift의 중첩 구조체 타입으로 임포트 됩니다.
3개의 문서 코멘트 필드가 추가되어, 사용자가 더 효과적으로 코드완성 엔진과 상호동작하도록 지원합니다.
- keyword:
- recommeded:
- recommendedover:
클래스 내부에서 failable(init?) 또는 예외를 던지는(init() throws) designated initializer 는 모든 저장속성을 초기화 하기 전에 또는 super.init() 을 호출하기 전에 종료할 수 있습니다. 이 동작은 designated initializers 가 convenience initializers 와 더 일관적이게 합니다. convenience initializers 역시 self.init() 을 수행하기 전에 실패할 수 있습니다.
- Curried 함수 문법이 deprecated 되었으며, Swift3에서 삭제된다고 합니다.
- ++, -- 연산자들도 deprecated 되었으며, Swift3에서 삭제된다고 합니다. 대신 정수와 부동소수에서는 x += 1, Index 타입에서는 x = x.successor() 을 사용하세요.
- 프로토콜의 연관타입은 typealias를 대체하여 새로운 associatedtype 을 사용할 수 있습니다. typealias 키워드는 swift2.2에서는 여전히 지원하지만 deprecated 되었으며 warning을 생성합니다. 이 warning은 Swift3에서는 에러가 될 것입니다.
protocol P {
associatedtype Ty
}
- 함수 또는 생성자를 참조할때, 인자 레이블을 포함한 완전한 이름을 사용할 수 있습니다.
- #file, #line, #column, #function 표현식이 추가되어 _FILE_, _LIN__, _COLUMN, _FUNCTION_ 를 대체합니다. FILE__ 스타일의 심볼은 deprecated 되었으며 Swift3에서 삭제될 예정입니다.
- 글로벌 anyGenerator() 함수는 좀더 직관적이고 자연스로운 API 스럽게 AnyGenerator 구조체의 생성자로 변경되었습니다. anyGenerator() 는 Swift2.2에서 deprecated 되었으며, Swift3에서 삭제될 예정입니다.
생성된 Objective-C 선언에서 rename 을 지원하도록, @objc(SomeName) 속성을 enum 과 enum case에도 사용할수 있습니다.
Swift 메서드의 Objective-C 셀렉터는 #selector 표현식을 사용하여 직접적으로 설정할 수 있습니다. 기존의 string 리터럴을 셀렉터로 사용하는 방식은 deprecated 되었습니다.
let sel = #selector(insertSubview(_:aboveSubview:)) // sel은 Selector 타입
let sel: Selector = "insertSubview:aboveSubview:" // deprecated
string 리터럴을 사용하는 방식은 #selector를 사용한 방식으로 대체되어야 하며, 컴파일러가 #selector로 변경되도록 수정을 지원합니다. 다음의 방법으로 직접 셀렉터를 생성하는 것도 유효합니다.
let sel = Selector("propertyName")
'Swift' 카테고리의 다른 글
[swift2.2] Xcode 7.3 Swift 언어 변경사항 (0) | 2016.03.24 |
---|---|
[swift2.1] Swiftris - swift로 만드는 테트리스 (1) | 2015.12.29 |
[swift2.1] Array와 Dictionary 기초 (0) | 2015.12.22 |
[swift2.1] Swift 프로토콜 지향 프로그래밍 2 (0) | 2015.12.09 |
[swift2] 키워드로 보는 Swift (0) | 2015.11.30 |
[swift2] Currying 함수 (0) | 2015.11.25 |