0

我有一个相当大的项目,我经常使用这样的代码更改笔尖 -

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

当我更改笔尖时,不会调用 dealloc(仅当我收到内存警告时才会调用它)。我对此进行了大量研究,但找不到任何答案。谁能帮我这个?

4

1 回答 1

1

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

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

于 2011-02-22T16:05:04.973 回答