Я выделил UIView в качестве панели инструментов и добавил все виды кнопок и других представлений в класс.Теперь, в моем заголовке ViewController у меня есть это:
@interface GridViewController : UIViewController <UIWebViewDelegate, UIScrollViewDelegate> {
Toolbar *toolbar;
}
@property (retain) Toolbar *toolbar;
и в реализации у меня есть это:
@synthesize toolbar;
- (void)viewDidLoad {
[super viewDidLoad];
CGRect toolbarRect = CGRectMake(0, 0, 1024, 40);
self.toolbar = [[Toolbar alloc] initWithFrame:toolbarRect];
[self.view addSubview:toolbar];
}
- (void) dealloc {
[toolbar release];
[super dealloc];
}
Теперь, если я запускаю анализ, это в основном говорит, что у меня естьпотенциальная утечка памяти.Если я добавлю [релиз панели инструментов];сразу после вызова addSubView: панель инструментов, как я обычно делаю при добавлении подпредставлений, приложение вылетает, когда я открываю ViewController.
Что я делаю не так?Я попытался прочитать все об управлении памятью, и в соответствии с этим вам всегда нужно выпускать / автоматически освобождать то, что вы выделяете / копируете / сохраняете и т. Д. Если я смотрю на свой код, я сохраняю переменную экземпляра в заголовке, а такжевыделяя его в реализации, так что счетчик удержания должен быть +2, и поэтому мне нужно было бы выпустить его дважды, но, похоже, я что-то неправильно понял.Любая помощь очень ценится.
Когда я говорю крах, я получаю это: Xcode делает паузу и говорит, что EXC_BAD_ACCESS для этой строки в main.m
int retVal = UIApplicationMain(argc, argv, nil, nil);
и в консоли я получаю это:
modifying layer that is being finalized - 0x60895f0