Xcode 6 베타5가 나온지 2주만에 Xcode 6 베타6가 오늘 나왔습니다. 아마도 앞으로 2주단위로 계속해서 베타를 내놓을 것같다는 생각이 듭니다.

릴리즈노트를 참고하여 정리해보니 아래와 같습니다.

Optional 형에 대해 더 개선

Foundation API에서 Optional형의 재검토가 더 진행되고 있습니다. T! 대부분이 nil을 얻을 경우, T?이고 그렇지 않은 경우 T로 변경되었습니다. 그리고 T!상태 그대로 두는 것에 대해서도 더 이상 애플사에 보고할 필요도 없을 정도로 애플도 이에 대해 파악하고 있습니다.

T?이어야할 곳이 T가 있는 경우 다음과 같이 명시적으로 Optional형을 지정하여 할당한 후, 다시 랩핑해서 해결할 수 있습니다.

[swift]

var fooOpt: NSFoo? = object.reallyMightReturnNil()
if let foo = fooOpt { }

[/swift]

이 버그를 찾으면 알려주세요!

??의 개선

?? 연산자에 아래와 같은 오버로드가 추가되었습니다.

[swift]

public func ?? <T> (optional: T?, defaultValue: @autoclosure () -> T?) -> T? {
switch optional {
case .Some(let value):
return value
case .None:
return defaultValue()
}
}

[/swift]

따라서 x = optional1 ?? optional2 ?? defaultValue의 처리가 예상대로 되어 아래와 같이 수정됩니다.

[swift]

let a: Int? = nil
let b: Int? = 5
a ?? b // was nil; is now .Some(5)

[/swift]

RawOptionSetType의 BitwiseOperationType 구현

RawOptionSetType은 BitwiseOperationType으로 구현되었습니다. 따라서 import된 NS_OPTIONS도 |=, &= 및 ^=으로 이용가능합니다.

String과 Character의 성공적 일관성

String과 Character 처리가 Array와 똑같게 되었습니다. 이는 +는 반드시 결합을 의미하고 요소 추가는 사용할 수 없게 된 것입니다. String + Character는 앞으로 오류로 처리됩니다. Character + Character 및 String + String은 그대로 사용가능합니다.

void*->UnsafePointer<Void>

C언어의 void*를 import할 때 ()대신 Void형 별칭이 사용되게 되었습니다. 예로 이전 UnsafeMutablePointer<()>이었던 것이 UnsafeMutablePointer<Void>로 변경된것입니다. 그러나 의미적으로는 이전과 동일합니다.

이상입니다.

Facebook Comments

You may be interested

모바일 앱 아키텍처
Swift
shares26 views
Swift
shares26 views

모바일 앱 아키텍처

MJ Kim - 4월 22, 2017

이 내용은 나름대로 개발해본 내용을 토대로 정리해본 모바일 앱 아키텍처에 대한 내용이다. 이를 정리한 이유는 오래된 아키텍처부터 최근 아키텍처까지 정리해보고…

시간차를 얻는 Date Extension
Swift 3.0
shares6 views
Swift 3.0
shares6 views

시간차를 얻는 Date Extension

MJ Kim - 4월 12, 2017

사용자가 남길 내용에 대한 시간표시를 할 때 일정한 시간차를 표현해주는 경우가 있어 이에 대한 Date Extention을 정리해 보았다. [crayon-58feccd8bc814905693931/]  

Swift 3.1에서 없어진 문법 정리
Swift 3.0
shares34 views
Swift 3.0
shares34 views

Swift 3.1에서 없어진 문법 정리

MJ Kim - 3월 31, 2017

Swift언어는 무엇인가 나올때마다 없어지는 것들이 있어, Swift 3.1에서 컴파일할 수 없게 된 문법내용을 정리했다. switch문을 사용하여 enum에서 protocol을 여러가지 패턴으로…