誰かがこの2つの違いを説明することができます。最初のものは、xcodeが自動的に宣言を生成できるようになっています。最後のものは、Aaron Hillegassの "Cocoa Programming"の例です。リターンオブジェクトポインタの違いは?
- (NSString*)planetName {
return [[planetName retain] autorelease];
}
。
- (NSString*)planetName {
return planetName;
}
私が起こっていただきました!ただ好奇心、私の理解では、この方法がnilまたは既存の文字列オブジェクトのいずれかへのポインタを返しているということでした。私は保持してから自動解放プールに追加する理由を理解していませんか?
。最初のパターン[防御]を守り、後で最適化するほうが生産性が高いでしょう。 – bbum
[planetName release]を実行したクラスにdeallocメソッドを追加した場合、それは「より賢明なメモリ管理」を構成し、より短い「return planetName;」を安全に使用できるようになりますか?私はすでにそれを持っている、私は混乱しているかもしれないと思う*管理*以上、私は同じように悪いことを知っている。 – fuzzygoat
基本的な考え方は "オブジェクトの所有権"です - あなたは 'planetName'を所有しているオブジェクトを選び、そのオブジェクト内のretain/release呼び出しを追跡したいと思っています。私はbbumのリンクをメモリ管理にお勧めします。少し時間がかかるかもしれませんが、それは良いリソースであり、長い道のりになります。 – fbrereto