Swift スコープ内Finally的なステートメント defer

Swift スコープ内Finally的なステートメント defer

deferはスコープを出る直前に実行できるコードを指定できます。Finally的な使い方ができます。Unsafeなallocate()をdeallocate()する場合に便利です。

public func test() -> Void{
	defer { print("Start defer") }
	print("Start Function")
}

上記コード例の場合結果は下のようになります。

public func test() -> Void{
	defer { print("Start defer 1") }
	defer { print("Start defer 2") }
	print("Start Function")
}

上記コードのようにdeferを複数いれることもできます。

この場合の結果は下記です。

Start Function
Start defer 2
Start defer 1

“Start defer 1”が一番最後に実行されました。

deferは、for などのスコープ内で利用することもできます。

public func test() -> Void{
	for i in [1,2,3] {
		defer { print("Statement defer \(i)") }
		print("Statement \(i)")
	}
	defer { print("Function defer") }
	print("Function Start")
}

上記コードを実行した場合下記のような結果でした。

ワイモバイル(Y!mobile)SIMでiPhone 12 proを使う

ワイモバイルでiPhone 12を使う

iPhone 12 Proを購入したのでワイモバイル(Y!mobile)のSIMを刺して利用できるか確認しました。結果を先に云いますとワイモバイルでiPhone 12 Proで4Gモバイル通信動きました。私の場合、以前からワイモバイルを利用しており最新のiPhoneをAppleStoreアプリから直接iPhoneを購入してSIMを差替えて利用していました。iPhone 12は5G対応ということだったので、ワイモバでの利用は諦めていたのですがiPhone 12 Proは4Gでも利用可能ということだったので衝動的に購入しました。

わたしは、他のひとと比べてアプリをあまりたくさんインストールしていません。従って機種変更でのチェックしておきたい項目はLINE|モバイルSuica | QUICPayやIDなどの非接触ウォレットの動作確認のみです。まず、LINEに関してはiPhone全体のバックアップ行い新しいiPhoneへリストアするだけでLINEが使えていました。モバイルSuicaは、旧iPhoneのウォレット内Suicaを削除し、新しいiPhoneで設定し直すだけです。QUICPayなども私の場合、一旦旧iPhoneのウォレットから全部削除して新たにiPhone 12 Proに入れ直しました。これでアプリ周りはほとんど使えます。Twitterやインスタグラムなどはリストアした瞬間から使えていました。

iPhone 12 Proに移行したあと早い段階でチェックした方がいいのはWi-Fiを切って4Gでちゃんと動作するのかだけ見たほうがよろしいかと思います。APNの設定が出来ていないとモバイルのアンテナが3Gになってしまい。モバイルでのインターネット通信ができません。

iPhone[プロファイル]設定
iPhone[プロファイル]設定

[設定]→[一般]→[プロファイル]の中にAPNの設定があります。リストアしたあとのiPhone 12のプロファイルを一旦削除し iPhone 12をWi-Fiが使える環境に接続します。其のあとワイモバ公式サイトから[APN構成プロファイル]をダウンロード|インストールしましょう。

https://www.ymobile.jp/yservice/howto/simfree_iphone/apn/

インストールが終わったあとも3G表示されている可能性もありますが データ通信が出来ている可能性があるのでWi-Fiを切って接続できるか確認してみて下さい。

2022 MJELD TECHNOLOGIES. ALL RIGHTS RESERVED