今日はアプリの開発ツールであるXcodeをバージョンアップ(9.3に)したらワーニングが出たのでその対処を行いました。
ワーニングとは、「このプログラムコードがちょっとおかしいよ?修正したほうがいいよ?修正しろや!」とプログラミング言語のベンダー(アップル)が開発者に対して警告するメッセージのことです。大抵、放っておいても動作しますが、運が悪いとアプリが落ちたりします。
アップルの提供するプログラムは頻繁に仕様(プログラムを作る約束事)が変更になり、開発者はそれに振り回させることが多々あります。macは古い規格の接続端子がバッサリ切り捨てられますよね?あんな感じです。
今回発生したワーニングは、デバイスが回転する際に利用するメソッド(特定の単位で処理を行うプログラム)に対して、「新しいもの用意したからそっち使ってや!一応、今回は古いやつでも使わしたるけど、そのうち使えんようなるからな!」と言うものです。
回転関連のメソッドって、過去にも2回くらい大幅に変わった記憶があります。「また変わったのかよ!いい加減にしろよ!ちゃんと考えてから長期に利用できる形で変えろよ!さすがアップル様だよ!」と一瞬思いましたが、どうやら今回の変更は、iOS8の頃から考えていた仕様変更らしいです。しっかりと対応します。
変更前
-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration {
// ここに回転時の処理Aを書く
}
-(void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
// ここに回転後の処理Bを書く
}
変更後
- (void)viewWillTransitionToSize:(CGSize)size
withTransitionCoordinator:(id)coordinator {
[coordinator animateAlongsideTransition:^(id context) {
// 回転前
// ここに回転時の処理Aを書く
} completion:^(id context){
// 回転後
// ここに回転後の処理Bを書く
}];
[super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];
}
以上です。なんか、前の方がスムーズに回転してたような気がするけど、皆さんそんな頻繁にスマホくるくる回転しないと思うので大丈夫かと思います。
←
∧_∧
∧_∧・ω・`) ↑
↓ ( ・ω・`)・ω・`)
く| ⊂)ω・`)
(⌒ ヽ・`)
∪ ̄\⊃