- 351 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 08:42:00 ]
- >>349
retain/release について勉強してください。その辺わかってないと、 プログラム書いてるといずれ意味不明なクラッシュが多発して どうしようもなくなりますよ。 developer.apple.com/iphone/library/documentation/cocoa/Conceptual/MemoryMgmt/Articles/mmPractical.html release は C++ でいう delete とは違って、即座にオブジェクトを 破壊するわけではないです。retain カウントを減らすだけです。 retain カウントがゼロになれば、自動的に dealloc が呼ばれてオブジェクトが なくなります。 あるオブジェクトを持っておきたい人は、 retain して retain カウントを増やします。 いらなくなったら、 release して retain カウントを減らします。 誰からもオブジェクトがいらなくなったら、自動的に dealloc されます。 NSMutableArray に addObject すると、NSMutableArray は そのオブジェクトを保持していたいので、 retain されます。 一方で、>>349 のコードを書いているあなた自身は もうそのオブジェクトは直接はいらなくなるので、release しちゃっていいです。 インスタンスがコピーされているわけじゃなくて、 NSMutableArray がこのオブジェクトを保持するぜ!と言っているので、 あなたはもうこのオブジェクトを保持している必要がなくなるわけです。
|

|