我终于决定停止拐弯抹角,自学一些 Objective-C。这一切都是有道理的,除了当我谈到内存管理和“自动释放池”这个想法时。据我了解,如果我专门使用 init、new、alloc 创建一个对象或告诉它保留,那么我的工作就是释放内存。但是,自动释放池会自动释放与最里面的自动释放池关联的所有对象吗?例如,假设我这样做:
TestOBJ* foo = [[[TestOBJ alloc] innit] autorelease];
那么它将在第一个 @autoreleasepool 块结束时释放,还是在调用第一个 [autoreleasepool drain] 时释放?
还; 仅仅因为一个对象是在 autoreleasepool 块中创建的,并不意味着它会自动标记为 autorelease,对吗?