我正在努力找出 PushViewController 是否保留控制器,目前我有以下代码(有效)...
ColorController *colorController = [[ColorController alloc] initWithNibName:nibColor bundle:nil];
[[self navigationController] pushViewController:colorController animated:YES];
[colorController release];
但我正在考虑删除该版本并添加自动版本...
ColorController *colorController = [[[ColorController alloc] initWithNibName:nibColor bundle:nil] autorelease];
[[self navigationController] pushViewController:colorController animated:YES];
非常感激
Gary
这没什么作用...
ColorController *colorController = [[ColorController alloc] initWithNibName:nibColor bundle:nil];
[[[self navigationController] pushViewController:colorController animated:YES] autorelease];
您正在自动释放pushViewController:animated:的返回值,该值是void。
您的第一个片段是有效且正确的。 PushViewController:确实保留了推送的控制器。
编辑:在更新的代码中,两个示例之间几乎没有什么区别。两者都保持适当的保留计数。然而,除非必要,否则避免使用 autoRelease 是“最佳实践”(特别是在内存敏感区域,如 iPhone)。这有助于您的应用程序保持更可预测和更易于管理的内存占用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)