-1

我对objective-c语言没有太多经验。我对目标 CI 中的内存管理很困惑,我知道内存管理是非常重要的因素,所以我们在开发时必须非常关注这一点。

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

4

2 回答 2

2

也许我见过的最明确的建议(ARC 之前)来自 Brent Simmons:我如何管理内存

于 2012-04-18T18:34:26.547 回答
0

这是一个很好的问题,因为在 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];
}
于 2012-04-18T16:36:21.070 回答