iPhone4アプリを開発しています。複数のビューコントローラーを立ち上げた場合、どうやってそれぞれのビューを終了させたらよいでしょうか?
もしくはアプリを終了させることができるでしょうか?開発環境はXcode4,iOS.SDK5.0です。
アプリは、
main.c
↓
AppDelegate
↓
ViewController1
↓
ViewController2
↓
ViewController3
と遷移します。
ViewController3で終了ボタンをおすことでアプリを終了、もしくは最初の画面ViewController1に戻りたいのですが、現状ではインスタンスが
開放されず、メモリを食いつぶして異常終了するのではないかと心配です。現状では理由がわかりませんが、[Object release];などの
メモリ開放の記述をXcodeが受け入れません。ViewApplicationにおける、適切なビューの終了、もしくはアプリの終了の仕方を教えてください。
アプリは簡単な心理テストで入金をもくろんでいます。Objective-Cはつい最近はじめたばかりですが、プログラム開発の経験は10年あります。
それでは有力な方、お助けください。
ビューアプリケーションの適切な終了の仕方について
-
しひ
Re: ビューアプリケーションの適切な終了の仕方について
こんばんは。
releaseなどが弾かれてしまうのはARCが有効になっているからではないかと思います。
ARCとは、iOS5から導入された、メモリ管理をコンパイラにさせる仕組みのことです。
コンパイラに一任するので、自分でreleaseなどを書いてしまうと却ってエラーになります。
恐らく、ビューコントローラの解放等もよしなにしてくれるのではないでしょうか。
releaseなどが弾かれてしまうのはARCが有効になっているからではないかと思います。
ARCとは、iOS5から導入された、メモリ管理をコンパイラにさせる仕組みのことです。
コンパイラに一任するので、自分でreleaseなどを書いてしまうと却ってエラーになります。
恐らく、ビューコントローラの解放等もよしなにしてくれるのではないでしょうか。
-
HGKヒューマンリソース
Re: ビューアプリケーションの適切な終了の仕方について
しひさん、回答ありがとうございます。
ARCが有効な場合、deallocやらfinalize,releaseなど特に書く必要はないということでいいってことでしょうか?
ARCが有効な場合、deallocやらfinalize,releaseなど特に書く必要はないということでいいってことでしょうか?
Re: ビューアプリケーションの適切な終了の仕方について
dealloc, release はARCが有効な場合は自動で呼び出されるので、明示的に呼び出してはいけません。
mallocなどで確保したARCの管轄外のメモリ領域を解放する必要があるときは、deallocの定義が必要です。
finalize はガーベジコレクションが有効なときに使用するものでARCの場合は使いません。
mallocなどで確保したARCの管轄外のメモリ領域を解放する必要があるときは、deallocの定義が必要です。
finalize はガーベジコレクションが有効なときに使用するものでARCの場合は使いません。