我对objective-c语言没有太多经验。我对目标 CI 中的内存管理很困惑,我知道内存管理是非常重要的因素,所以我们在开发时必须非常关注这一点。
我的问题是我们必须遵循哪些基本的事情来尽可能减少内存的使用?
我对objective-c语言没有太多经验。我对目标 CI 中的内存管理很困惑,我知道内存管理是非常重要的因素,所以我们在开发时必须非常关注这一点。
我的问题是我们必须遵循哪些基本的事情来尽可能减少内存的使用?
也许我见过的最明确的建议(ARC 之前)来自 Brent Simmons:我如何管理内存
这是一个很好的问题,因为在 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];
}