まあほとんど自動的に修正してくれるようだが。
今はまだ非推奨(deprecated)の段階なので、そのままでもコンパイルしてくれる。
まずソフトウェアアップデートで表示された変更点を和訳。
Xcode 7.3の変更点
- XcodeのiOSとOS Xのplaygroundは、対話的で、ユーザー生成のイベント(例えばボタン・クリックとiOSジェスチャー)に反応します。
- コード補完機能は、より知的な提案(APIの範囲内で単語の最初の文字に基づいたオプションを含む)を提供します。
- デバイスウィンドウは、一つのiPhoneに対して複数のApple Watchデバイスの間での切り替えをサポートします。
- SwiftとObjective-C両方の記述を評価するとき、デバッガーは必要なフレームワークを自動的にインポートします。
- ビューデバッギングは、さらなるインスペクター情報、コンテキストメニューとアシスタントエディター・オプションを追加します。
- 静的アナライザーは、nullabilityとObjective-Cの属性に関連した、より潜在的問題を確認します。
Swift2.2の変更点
- Swift.orgからダウンロードされるSwift toolchainsは、プリファレンスのupdated Componentsタブから簡単に選択できます。
- 新しく#file、#line、#columnと#functionの記述を追加。
- スライスタイプの新しいremoveFirst()とremoveLast()メソッドを含む、標準ライブラリの改善。
- 条件付きビルドのオプションは、現在のSwiftバージョンに基づく同じファイルの範囲内で、はっきりしたコードブロックを編集することができます。
- メソッドのObjective-C selectorを参照する、新しい#selector記述。
- 失敗可能なクラス・イニシャライザは、スーパークラスのイニシャライザを呼ぶ前に、「nil」を返すことができます。
- 改善されたコンパイル時診断メッセージ。
- 例えば++、--文と、C言語スタイルのループ文を、将来リリースされるSwift 3に備えて非推奨化。
よくわかんないのもあるけど、まあいいや。
次に、自分のプロジェクトで引っかかった点のまとめ。
次に、自分のプロジェクトで引っかかった点のまとめ。
selectorの記述で、Objective-C式が非推奨になる
旧
finishTimer = NSTimer.scheduledTimerWithTimeInterval(rnd,
target: self,
selector: "finish",
userInfo: nil,
repeats: false)
新(Flatwoodsはコードが書かれたクラス名)
finishTimer = NSTimer.scheduledTimerWithTimeInterval(rnd,
target: self,
selector: #selector(Flatwoods.finish),
ちゃんとクラス名も入れろってことか。
新
actionCounter += 1
旧のi++が将来的に使えなくなるとしてWarningが出るのは当然として、C言語形式の書き方も将来的に廃止になるからとしてfor in形式に書き換えさせられる。
userInfo: nil,
repeats: false)
加算、減算演算子の++、--が次期Swift3から使用不可に
旧
actionCounter++
actionCounter += 1
for文も変わった
旧
新
for (var i = 0; i < 10; i++) {
print(i)
}
for i in 0..<10 {
print(i)
}
0 件のコメント:
コメントを投稿