fuz*_*oat 11 iphone cocoa-touch objective-c
我很难找出pushViewController是否保留了控制器,目前我有以下代码(有效)...
ColorController *colorController = [[ColorController alloc] initWithNibName:nibColor bundle:nil];
[[self navigationController] pushViewController:colorController animated:YES];
[colorController release];
Run Code Online (Sandbox Code Playgroud)
但我正在考虑删除发布并添加自动释放...
ColorController *colorController = [[[ColorController alloc] initWithNibName:nibColor bundle:nil] autorelease];
[[self navigationController] pushViewController:colorController animated:YES];
Run Code Online (Sandbox Code Playgroud)
非常感激
加里
Jer*_*nes 11
这什么都不做......
ColorController *colorController = [[ColorController alloc] initWithNibName:nibColor bundle:nil];
[[[self navigationController] pushViewController:colorController animated:YES] autorelease];
Run Code Online (Sandbox Code Playgroud)
你是自动释放pushViewController的返回值:animated:,这是无效的.
您的第一个代码段有效且正确无误.pushViewController:确实保留了被推送的控制器.
编辑:在更新的代码中,两个样本之间几乎没有差异.两者都保持适当的保留计数 但是,除非必要,否则避免使用autoRelease是一种"最佳做法"(特别是在内存敏感区域,如iPhone).这有助于您的应用程序维护更可预测和可管理的内存占用.
| 归档时间: |
|
| 查看次数: |
2731 次 |
| 最近记录: |