ビューアプリケーションの適切な終了の仕方について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
HGKヒューマンリソース

ビューアプリケーションの適切な終了の仕方について

#1

投稿記事 by HGKヒューマンリソース » 14年前

iPhone4アプリを開発しています。複数のビューコントローラーを立ち上げた場合、どうやってそれぞれのビューを終了させたらよいでしょうか?
もしくはアプリを終了させることができるでしょうか?開発環境はXcode4,iOS.SDK5.0です。

アプリは、
main.c

AppDelegate

ViewController1

ViewController2

ViewController3
と遷移します。
ViewController3で終了ボタンをおすことでアプリを終了、もしくは最初の画面ViewController1に戻りたいのですが、現状ではインスタンスが
開放されず、メモリを食いつぶして異常終了するのではないかと心配です。現状では理由がわかりませんが、[Object release];などの
メモリ開放の記述をXcodeが受け入れません。ViewApplicationにおける、適切なビューの終了、もしくはアプリの終了の仕方を教えてください。

アプリは簡単な心理テストで入金をもくろんでいます。Objective-Cはつい最近はじめたばかりですが、プログラム開発の経験は10年あります。
それでは有力な方、お助けください。

しひ

Re: ビューアプリケーションの適切な終了の仕方について

#2

投稿記事 by しひ » 14年前

こんばんは。
releaseなどが弾かれてしまうのはARCが有効になっているからではないかと思います。
ARCとは、iOS5から導入された、メモリ管理をコンパイラにさせる仕組みのことです。
コンパイラに一任するので、自分でreleaseなどを書いてしまうと却ってエラーになります。
恐らく、ビューコントローラの解放等もよしなにしてくれるのではないでしょうか。

HGKヒューマンリソース

Re: ビューアプリケーションの適切な終了の仕方について

#3

投稿記事 by HGKヒューマンリソース » 14年前

しひさん、回答ありがとうございます。
ARCが有効な場合、deallocやらfinalize,releaseなど特に書く必要はないということでいいってことでしょうか?

アバター
h2so5
副管理人
記事: 2212
登録日時: 15年前
住所: 東京
連絡を取る:

Re: ビューアプリケーションの適切な終了の仕方について

#4

投稿記事 by h2so5 » 14年前

dealloc, release はARCが有効な場合は自動で呼び出されるので、明示的に呼び出してはいけません。
mallocなどで確保したARCの管轄外のメモリ領域を解放する必要があるときは、deallocの定義が必要です。

finalize はガーベジコレクションが有効なときに使用するものでARCの場合は使いません。

閉鎖

“C言語何でも質問掲示板” へ戻る