Xcode6 Beta4 から Xcode6 Beta5にアップデートしたらいくつかコンパイルエラーになったのでメモしておきます。
init メソッドは override が必要になった
• Overrides of a designated initializer must be marked with the 'override' modifier. (17892845
Does not implement its superclass's required members
以下を追加します。
required init(coder aDecoder: NSCoder!) {
super.init(coder: aDecoder)
}
• The required modifier is written before every subclass implementation of a required
initializer. Required initializers can be satisfied by automatically inherited initializers.
(17892840)
参考
配列にエレメントの追加
+=
演算子でエレメントの追加ができなくなりました。append
メソッドを利用します。
↓
+=
演算子は配列の連結で利用するようになりました。
• The += operator on arrays only concatenates arrays, it does not append an element. This
resolves ambiguity working with Any, AnyObject and related types. (17151420)
nil チェック
↓
Optionals can now be compared to nil with == and !=, even if the underlying element is not
Equatable. (17489239)
Operator infix
operator
とinfix
,prefix
,postfix
の記述の順番が逆になりました。
↓
↓
@
の記述も不要になりました。
• The @prefix, @infix, and @postfix attributes have been changed to declaration modifiers,
so they are no longer spelled with an @ sign (now, prefix func (…)).
@auto_closure
@auto_closure
の記述は@autoclosure
に変わりました。
• The @auto_closure attribute has been renamed to @autoclosure. (16859927)
UnsafePointer
UnsafeConstPointer
とUnsafePointer
はUnsafePointer
と UnsafeMutablePointer
に変更されました。
KVOのobserveValueForKeyPath
の実装において、引数の型がUnsafePointer
の場合エラーになるので、safeMutablePointer
に変更しました。
↓
• The UnsafeConstPointer and UnsafePointer types have been renamed to UnsafePointer
and UnsafeMutablePointer for consistency with Cocoa and to encourage immutability. The
Autoreleasing and other pointers have been renamed for consistency as well. (17892766)
その他
リリースノートには上記以外の変更点もたくさん記載されており、コンパイルエラーになる事象は他にもありそうです。