我有一个很大的项目,我经常使用这样的代码来改变笔尖 -
level3 *screen = [[level3 alloc] initWithNibName:@"level3" bundle:nil];
screen.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[self presentModalViewController:screen animated:YES];
[screen release];
当我更改nib时,没有调用dealloc(只有在我收到内存警告时才调用它)。我对此做了很多研究,但无法找到任何答案。谁能帮我这个?
答案 0 :(得分:1)
答案是因为iOS会缓存你的笔尖。如果它当然遇到内存警告就会放弃缓存,这就是你所看到的行为。
请记住,您可能会遇到多次使用相同对象的相同对象(例如在tableview单元格中)。加载nib是一个昂贵的过程,相对于在某些缓存中保留对象的引用。