我一直在阅读有关 autoreleasepool 的信息,但有一点对我来说有点不清楚。我有一些使用线程的功能,这些线程需要使用自动释放池进行单独的内存管理。
在下面的例子中是正确的
-(void) doSomething {
NSAutorelease *pool = [[NSAutorelasepool alloc] init];
NSString *myString = @"Hello";
[pool release];
}
它是否正确?
-(void) doSomething {
NSAutorelease *pool = [[NSAutorelasepool alloc] init];
NSString *myString = [[NSString alloc] initWithString:@"Hello"];
[pool release];
}
或这个?
-(void) doSomething {
NSAutorelease *pool = [[NSAutorelasepool alloc] init];
NSString *myString = [[NSString alloc] initWithString:@"Hello"];
[myString release];
[pool release];
}
我的问题是在自动释放池范围内创建的拥有对象需要专门重新释放,还是在释放自动释放池时得到照顾?
张