前言
使用自动释放池的八大注意:
例如,有一个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方法,是不会将这个对象存储到这个自动释放池之中的。
