EAP iOSアプリのXcode10、Swift4.2対応
9月にXcode10がリリースされましたが、EAPもSwift4.2に対応しました。
Swift4.1からSwift4.2の変更は思ったより苦労しなかったので、少しほっとしています。
ソースコードの修正
対応した内容は以下のとおりです。
sendSubview
sendSubviewの「toBack」がメソッド名に含まれるようになっていました。
●変更前と変更後
sendSubview(toBack: view)
sendSubviewToBack(view)
ネスティングタイプ
型がネストされてことによる変更が多く、以下の通りいくつか修正しています。
●変更前と変更後
・UITableViewCellのセクションスタイル
UITableViewCellSelectionStyle
UITableViewCell.SelectionStyle
・UITableViewAutomaticDimension
tableView.rowHeight = UITableViewAutomaticDimension
tableView.rowHeight = UITableView.automaticDimension
・launchOptionsの型
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?)
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?)
・NSAttributedStringKey
[NSAttributedStringKey.font: font]
[NSAttributedString.Key.font: font]
・UIApplicationDidBecomeActive
.UIApplicationDidBecomeActive
UIApplication.didBecomeActiveNotification
・UIApplicationDidEnterBackground
.UIApplicationDidEnterBackground
UIApplication.didEnterBackgroundNotification
・UIAlertControllerStyle
UIAlertControllerStyle
UIAlertController.Style
・UIWindowのレベル
window.windowLevel = UIWindowLevelAlert
window.windowLevel = UIWindow.Level.alert
・アプリケーションのState
UIApplicationState
UIApplication.State
ViewController関連のメソッドの簡略化
ViewController関連のいくつかのメソッドも簡略化されているようです。
●変更前と変更後
・willMoveラベル名が省略
viewController.willMove(toParentViewController: nil)
viewController.willMove(toParent: nil)
・removeFromParentViewControllerのViewControllerを省略
viewController.removeFromParentViewController
viewController.removeFromParent()
・addChildViewControllerのViewControllerを省略
addChildViewController(viewController)
addChild(viewController)
・ステータスバーの非表示設定
override var childViewControllerForStatusBarHidden: UIViewController?
override var childViewControllerForStatusBarStyle: UIViewController?
・ステータスバースタイル
override var childViewControllerForStatusBarStyle: UIViewController?
override var childForStatusBarStyle: UIViewController?
外部ライブラリの対応
EAPで利用している外部ライブラリはいろいろあるのですが、Frameworkで提供のものが多く、また、Objective-Cで作られているものもあり、あまり対応には苦労しませんでした。
API通信のライブラリでAlamofireはSwiftでしたが、いち早くSwift4.2に対応していただいていたので、すぐに切り替えることができました。感謝です!
TAG
最近、仕事に復帰し、子育てと仕事の両立に奮闘しているママエンジニアです。趣味はダイビングで、海に潜って魚や珊瑚の写真を撮るのが好きです。
TAG
- Android
- AWS
- Bitrise
- CodePipeline
- Firebase
- HTML
- iOS
- IoT
- JavaScript
- KPI
- Linux
- Mac
- Memcached
- MGRe
- MGReのゆるガチエンジニアブログ
- MySQL
- PHP
- PICK UP
- PR
- Python
- Ruby
- Ruby on Rails
- SEO
- Swift
- TIPS
- UI/UX
- VirtualBox
- Wantedly
- Windows
- アクセス解析
- イベントレポート
- エンジニアブログ
- ガジェット
- カスタマーサクセス
- サーバ技術
- サービス
- セキュリティ
- セミナー・展示会
- テクノロジー
- デザイン
- プレスリリース
- マーケティング施策
- マネジメント
- ラボ
- リーンスタートアップ
- 企画
- 会社紹介
- 会社紹介資料
- 勉強会
- 実績紹介
- 拡張性
- 採用
- 日常
- 書籍紹介
- 歓迎会
- 社内イベント
- 社員インタビュー
- 社長ブログ
- 視察
- 開発環境