Я работаю в приложении для iPad.В нем представлено несколько представлений, поэтому я должен быть осторожен с управлением памятью.
Моя проблема связана с объектами автоматического выпуска.Я хотел бы связать NSAutoreleasePool с каждым контроллером представления.Примерно так:
MyViewController.h
@interface MyViewController: UIViewController
@property (nonatomic, retain) NSAutoreleasePool *myPool;
MyViewController.m
@implementation MyViewController
@synthesize myPool;
- (void) viewDidLoad {
myPool = [[NSAuroteleasePool alloc] init];
}
- (void) dealloc {
[myPool drain];
}
NSAutoreleasePool нельзя использовать в качестве свойства.Я хотел бы добиться поведения, похожего на это.Любая идея?Заранее спасибо.
РЕДАКТИРОВАТЬ
Спасибо за ваши ответы.В ответ на ваши вопросы (я пока не могу ответить на свой вопрос):
ViewController будет делать намного больше вещей, будет реагировать на события и т. Д. И т. Д. Я хотел бы, чтобы после всех этих операцийОтпустите то, что должно быть автоматически выпущено.Расширяем пример:
MyViewController.h
@interface MyViewController: UIViewController
@property (nonatomic, retain) NSAutoreleasePool *myPool;
MyViewController.m
@implementation MyViewController
@synthesize myPool;
- (void) viewDidLoad {
myPool = [[NSAuroteleasePool alloc] init];
}
- (IBAction) whatEver: (id) sender {
UIImage *img = [UIImage imageWithData: ...];
NSString *str = @"MyString";
...
}
- (void) dealloc {
[myPool drain];
}
Что будет со строкой и изображением?Я предполагаю, что они сохранены в бассейне, не так ли?Я мог бы дождаться пула релизов в основном методе, но я думаю, он будет исчерпан, когда приложение завершится.