私はobjective-c言語の経験があまりありません。客観的なCIでのメモリ管理とはかなり混乱しています。メモリ管理は非常に重要な要素であるため、開発中はそれに重点を置く必要があります。
私の質問は、メモリの使用を可能な限り減らすために私たちが従わなければならない基本的なことはどれですか?
私はobjective-c言語の経験があまりありません。客観的なCIでのメモリ管理とはかなり混乱しています。メモリ管理は非常に重要な要素であるため、開発中はそれに重点を置く必要があります。
私の質問は、メモリの使用を可能な限り減らすために私たちが従わなければならない基本的なことはどれですか?
おそらく、私が今まで見た中で最も明確なアドバイス(ARC以前)は、ブレント・シモンズからのものでした:メモリの管理方法
Objective-Cにはガベージコレクタがないため、これは非常に良い質問です。手動でメモリを処理する必要があります。
あなたがObjective-Cでオブジェクトを所有しているのalloc
は、それ、copy
それ、またはnew
それです。たとえば(このサンプルコードをhttp://interfacelab.com/objective-c-memory-management-for-lazy-people/からコピーしました):
-(void)someMethod
{
// I own this!
SomeObject *iOwnThis = [[SomeObject alloc] init];
[iOwnThis doYourThing];
// I release this!
[iOwnThis release];
}
-(void)someOtherMethod:(SomeObject *)someThing
{
// I own this too!
SomeObject *aCopyOfSomeThing = [someThing copy];
[aCopyOfSomeThing doSomething];
// I release this!
[aCopyOfSomeThing release];
}
-(void)yetAnotherMethod
{
// I own this too!
SomeObject *anotherThingIOwn = [SomeObject new];
[anotherThingIOwn doSomething];
// I release this!
[anotherThingIOwn release];
}