我的didReceiveMemoryWarning中应该有什么?我看不到仍在内存中的任何我可以释放的东西。我为我的managedObjectContext设置了一个属性,这就是为ivars设置的属性。
- (void)viewDidLoad
{
[super viewDidLoad];
UIBarButtonItem *calendar = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"calendar.png"]style:UIBarButtonItemStyleBordered target:self action:@selector(viewCal)];
self.navigationItem.rightBarButtonItem = calendar;
[calendar release];
UIBarButtonItem *settings = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"gears.png"] style:UIBarButtonItemStyleBordered target:self action:@selector(viewSettings)];
self.navigationItem.leftBarButtonItem = settings;
[settings release];
[SHK flushOfflineQueue];
[self clearNullWorkouts];
}
- (void)didReceiveMemoryWarning
{
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
// Relinquish ownership any cached data, images, etc that aren't in use.
}发布于 2011-05-20 02:34:11
在SHK是什么让你成为flushOfflineQueue,clearNullWorkouts是做什么的?这些可能是您在didReceiveMemoryWarning期间需要释放的资源类型。同样,因为didReceiveMemoryWarning触发并不意味着您必须清理任何东西,例如,如果您仍在显示视图,播放正在引用的音频文件,等等。当这个调用时,您需要释放一些东西,如未显示的图像,未正在播放的音频等。在调用didReceiveMemoryWarning之后,未显示的视图控制器将调用viewDidUnload,这就是您将所有IBOutlet/编程视图设置为空并释放更多内存的地方。苹果在Memory Management Programming Guide中讨论了这一点。
https://stackoverflow.com/questions/6063117
复制相似问题