2014年2月3日月曜日

[iOS][Objective-C]アプリケーションを終了させる


どうも。

これは基本的に禁じ手で、
Rejectされない保証はないです(´・ω・`)

一応、
「ユーザーに確認を取ってからならOK!」
という説もありますが…。

まぁ、
App Storeに申請するアプリでなければ、
そんなことを気にする必要はないです。

やり方は簡単で、
C言語のexitをコールするだけ。
引数には0でも与えとけばいいです。

ユーザーにアプリを一度終了する旨を、
UIAlertViewで確認を取ってやって、
[OK]ならexitしてしまえばいい。

今現在やってるのはトライアル開発というか、
少なくとも今のもの自体を商用化することはないので、
遠慮なく落としてやっていますがw

ただ、
exitを呼ぶと、
本当にストンと落ちます。

それではあまりに不自然なので、
何かしら終了処理をしているフリをするために、
「アプリケーションを終了しています...」
みたいな通知文言と、
UIActivityIndicatorViewを組み合わせて、
UIAlertViewを表示してやるとかすれば、
画面操作もできないし、
何かしら裏で処理してるっぽいw

上記の終了処理実行中の表示をした2秒後くらいに、
exitが遅延実行されるように仕掛けておけばいい。

で、
exitを使うべきかどうかですが、
App Storeにリリースするのであれば、
やるべきでないと思います。
代替えとしては、
何も操作できない全画面の説明表示かなんかして、
再起動手順を促してやるとか。

exitの件然りですが…。
公開されているAPIでできないことでも、
C言語の仕組みを使うことで実現出来る。
しかしながら、
そのこと自体、
Appleは快く思っていないフシがある。

C言語の仕組みで、
Reject対象になるものもあった気もするし、
今は大丈夫でも今後Reject対象になる可能性は否定出来ない。

なんて言いつつ、
諸般の事情で、
やらざるを得ないことも多々ありますが(´・ω・`)


それでは。
ちゃお☆


まこぴー。