私はCocoaのメモリ管理の概念を理解しようとしています。 私は、次の部分:::で立ち往生していますココアでのメモリ管理
//This is wrong code. But i want to understand why it is wrong!
- (void) setEngine: (Engine *) newEngine
{
[engine release];
engine = [newEngine retain];
}
ときnewEngineとエンジンものと同じ、そしてどのようにココアは、インスタンス変数として扱わすべき1パラメータとして1を決定していますか?例えば
:
Engine *engine = [Engine new]; // count: 1
Car *car1 = [Car new];
Car *car2 = [Car new];
[car1 setEngine: engine]; // count: 2 -----How is the retain count 2 here?
[engine release]; // count 1
[car2 setEngine: [car1 engine]];
私は私のプログラムで効率を維持するように徹底的にこの概念を学びたいよう助けてください。私は多くの人が私と私の友人としてこのままで立ち往生していると確信しています..事前に感謝... :)
あなたはコードをフォーマットする "{}" のアイコンを使用することができます。また、フレームワーク名はCOCOAではなく "Cocoa"です(略語ではありません)。 –
よろしくお願いします: –