• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:メモリの解放について)

メモリの解放について

このQ&Aのポイント
  • Objective-Cにおけるメモリの解放方法と注意点について説明します
  • クラス変数arrを初期化し、辞書クラスを格納しています。test2関数でarrを解放する際に、中に格納した辞書クラスも解放されるかどうかについて説明します
  • iPhoneSDK上ではガベージコレクションがないため、メモリの解放には注意が必要です

質問者が選んだベストアンサー

  • ベストアンサー
  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.2

Objective-Cは使ったことがないのでC++の知識で回答していますが、基本的には「自力で解放しなければならない」と思います。 ただ、deallocなる解放時に機能する関数があるようですから、そこに処理を仕込んでおいて配列の解放時に中のメンバーが解放されているかどうかを確認した方がよいかと。 コンテナの機能で「内部に抱えてるものを一緒に解放する」処理が組み込まれていることもありますから。

tama2002
質問者

お礼

ありがとうございます。 コンテナの機能で解放する処理が組み込まれていることもあるんですね。 きちんと中身を取り出して確認したいと思います。 こういう事に慣れていないので最初はとまどいましたが、習慣になってしまえば 何とかやれそうです。 ありがとうございました。

その他の回答 (1)

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.1

ガベージコレクタというよりは参照カウンタによる解放管理の話でしょうか。 C++にはこの機構はないので、「参照されなくなったインスタンス」もそのまま残ってしまいます。ですから、確保した単位ごとで解放する必要があります。

tama2002
質問者

お礼

ご回答ありがとうございます。 NSMutableDictionaryも取り出して、さらにその中の要素も取り出して、解放しないと いけないという事でしょうか? それともC++の場合という事でしょうか? すみません、その辺りを教えていただけないでしょうかmm

関連するQ&A