OSX
iOS
Swift
Swift2.0

Swift 2でビット演算子|を使うとエラーになる場合

More than 3 years have passed since last update.

以下のコードはSwift 2ではエラーとなります。


example1.swift

let view = UIView()

view.autoresizingMask = .FlexibleTopMargin | .FlexibleBottomMargin

Type of expression is ambiguous without more context

これはSwift 1.2ではRawOptionSetTypeだったものがSwift 2.0でOptionSetTypeに変わったためです。

RawOptionSetTypeではビット演算が可能です。

Swift Standard Library Reference OptionSetType Protocol Reference

Swift 2では以下のように記述します。


example2.swift

let view = UIView()

view.autoresizingMask = [.FlexibleTopMargin, .FlexibleBottomMargin]