viewDidUnload和didReceiveMemoryWarning方法的用途是什么?
当他们真正被召唤时?
dealloc,viewDidUnload和didrecievedmemorywarning有什么区别?
答案 0 :(得分:1)
viewDidUnload应该撤消viewDidLoad的作用,就像dealloc应该释放init创建的任何资源一样。所以:
-(id)init {
if (self == [super init]) {
foo = [[Foo alloc] init];
}
return self;
}
-(void)dealloc {
[foo release];
[super dealloc];
}
-(void)viewDidLoad {
[super viewDidLoad];
bar = [[Bar alloc] init];
}
-(void)viewDidUnload {
[bar release];
[super viewDidUnload];
}
didReceiveMemoryWarning就在那里你可以释放任何不必要的内存。也许您缓存图像。对于一个快速的用户界面,这很好,但是当内存紧张时,你可以释放内存,你的应用程序的性能会优雅地降低。
答案 1 :(得分:1)
viewDidUnload:当viewcontroller收到低内存警告时调用它。
dealloc:释放object / viewController时调用它。
didRecieveMemorywarning:当控制器收到低内存警告时也会调用。
那么,什么是viewDidUnload和didrecieveemoryWarning之间的区别?
viewDidUnload是您需要清理与UI相关的内容的地方,例如,商店。
didRecieveMemoryWarning是一个需要清理其他持有内存且不经常使用的对象的地方。
答案 2 :(得分:0)
从Apple's documentation开始是一个好主意,因为这个主题有很多。
答案 3 :(得分:0)
viewDidUnload
。然后释放视图,并断开所有IBOutlet。弹出viewController时,或者当它收到内存警告时,通常会触发该方法。
didRecieveMemorywarning
。当设备内存不足时会发生这种情况。您应该尝试尽可能多地发布数据,以释放内存。缓存,此刻不需要的数据等等。
如果你没有释放内存,你的应用程序将在某个时刻被杀死以释放操作系统的内存。
<\ n>Dealloc
在实例被解除分配时被调用。