更换笔尖时不调用Dealloc

时间:2011-02-22 15:59:04

标签: iphone objective-c ios dealloc

我有一个很大的项目,我经常使用这样的代码来改变笔尖 -

level3 *screen = [[level3 alloc] initWithNibName:@"level3" bundle:nil];
screen.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[self presentModalViewController:screen animated:YES];
[screen release];

当我更改nib时,没有调用dealloc(只有在我收到内存警告时才调用它)。我对此做了很多研究,但无法找到任何答案。谁能帮我这个?

1 个答案:

答案 0 :(得分:1)

答案是因为iOS会缓存你的笔尖。如果它当然遇到内存警告就会放弃缓存,这就是你所看到的行为。

请记住,您可能会遇到多次使用相同对象的相同对象(例如在tableview单元格中)。加载nib是一个昂贵的过程,相对于在某些缓存中保留对象的引用。