2012-03-15 13 views
0

可能性の重複:
Difference between retain and copy?iOSとメモリ管理

私が読んだ私は今のiOS開発を学んでいると私は非常によくメモリ管理を理解していない、 リンゴ開発センターのAd​​vanced Memory Management Programming Guideにも触れていますが、まだ質問があります。私が知りたいと思う最も重要な質問は、copyretainの違いは何ですか?クラスのプロパティを定義するとどうなりますか?ありがとうございました!

+0

ガイドラインをもう一度読んでください。保持とコピーの違いはかなりよく記録されています。 –

+0

こんにちは、私はあなたの答えを与えるつもりはありませんbcoz mattjgallowayはすでにそれのためのリンクを与えています。私はあなたのプロジェクトリーダーによるメモリ管理の扱いについてのリンクを提供しています。 [this](http://iphone2020.wordpress.com/2010/05/30/efficient-memory-handling-in-uiviewcontroller-part-1/)と[this one](http://iphone2020.wordpress。)を参照してください。 com/2010/05/30 /効率的なメモリ取り扱い中のコントローラ - パート2 /) –

答えて

1

これには数千の答えがあります!しかし、最初に理解しなければならないのは、@propertyを定義するときに、アプリケーションのコンパイラへの指示文を発行し、retain/copy(およびその他のすべては括弧内に表示されています)は、コンパイラへの指示です指示に従ってください。

@property本質的には、コンパイラさん、私にいくつかのアクセサメソッド(ゲッター&セッター)を作ってください。

したがって、retain & copyは、これらのゲッター/セッターアクセサ内での操作方法をコンパイラに指示します。

copyは、私が[myClass setMyProperty:propertyReference]と言うとき、クラスにプロパティのコピーを作成させることを意味します。プロパティの完全な新しいインスタンス。したがって、クラス内のコピーは、クラスの外で起こっている外部の詐欺行為の影響を受けません。

retainを意味します - クラスに、私が設定しているプロパティの正確なインスタンスを覚えておきたい。新しいインスタンスではありません。この場合、そのインスタンスが変更されると、クラスはプロパティの最新の状態を知ります。