objective-c中内存管理的基本步骤

时间:2012-04-18 16:29:12

标签: iphone objective-c ios xcode memory-management

我对Objective-c语言的经验不多。我对目标C中的内存管理非常困惑。我知道内存管理是非常重要的因素,因此我们必须在开发过程中强烈关注它。

我的问题是我们必须遵循哪些基本的事情来减少对内存的使用?

2 个答案:

答案 0 :(得分:2)

也许我见过的最明智的建议(前ARC)来自布伦特西蒙斯:How I Manage Memory

答案 1 :(得分:0)

这是一个非常好的问题,因为在Objective-C中没有垃圾收集器。我们必须手动处理内存。

当您alloccopynew时,您拥有Objective-C中的对象。例如(我已经从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];
}