gpt4 book ai didi

objective-c - 发布 UIAlertView 时的奇怪编码模式

转载 作者:可可西里 更新时间:2023-11-01 06:23:55 27 4
gpt4 key购买 nike

在很多代码示例中,也在 Apple 文档网站上,您会看到这种模式。 UIAlertView 按顺序调用“show”和“release”。

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Panic!"
message:@"The world is gonna explode!"
delegate:nil cancelButtonTitle:@"Who cares?"
otherButtonTitles:@"Boom!", nil];
[alert show];
[alert release];
NSLog(@"released!");

当您运行此代码时,“已发布!”当 UIAlertView 框仍在屏幕上时,将显示日志行。当它还在屏幕上时释放这个对象对我来说似乎是一种奇怪的模式。这背后的想法是什么,这不是违背了内存管理的共同点吗?如果此“显示”调用会阻塞,我可以看到此模式如何安全地释放内存。但是由于执行了 NSLog 方法,它会继续执行您的代码。

最佳答案

release 并不意味着该对象将立即被处理掉。这只是意味着您的代码在那之后不想再访问它。其他代码(如系统框架)可能会保留它。

关于objective-c - 发布 UIAlertView 时的奇怪编码模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4582960/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com