前言
使用自动释放池的八大注意: 例如,有一个Person类: #import @interface Person : NSObject @property(nonatomic,retain)NSString *name; @end
#import “Person.h” @implementation Person – (void)dealloc { NSLog(@“人挂了。。。”); [_name release]; [super dealloc]; } @end
#import #import “Person.h” int main() { @autoreleasepool { Person *p1 = [Person new]; //执行这句代码,并不会把p1对象存储到自动释放池之中去,需要下面这句代码,才能将对象存储到自动释放池之中去: [p1 autorelease]; } return 0; }
一、只有在自动释放池中调用了对象的autorelease方法,这个对象才会被存储到这个自动释放池之中1)如果只是将对象的创建代码写在自动释放池之中,而没有调用对象的autorelease方法,是不会将这个对象存储到这个自动释放池之中的。
二、对象