EAP iOSアプリのXcode10、Swift4.2対応
PICK UP POST

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

  • このエントリーをはてなブックマークに追加
にっきー
にっきー niki

最近、仕事に復帰し、子育てと仕事の両立に奮闘しているママエンジニアです。趣味はダイビングで、海に潜って魚や珊瑚の写真を撮るのが好きです。