【发布时间】:2012-11-05 05:00:34
【问题描述】:
当我使用 y=this 两行导航到另一个视图控制器时,它可以正常工作。
Inventory *obj = [[Inventory alloc] initWithNibName:@"Inventory" bundle:nil];
[self.navigationController pushViewController:obj animated:YES];
但是如果我写这行[我们必须写的]
[obj release];
它给了我错误的访问错误。
请帮忙。
谢谢
【问题讨论】:
-
1) 使用 Arc 2) 你在哪里写
[obj release];? -
你的意思是自动释放?我没有使用 ARC。
-
同意。如果您将
[obj release]放在pushViewController之后,那么该对象将有一个+1retainCount(因为pushViewController将为您保留它)并且当您稍后popViewController时,它将被适当地清理为你准备好了。 -
同样的问题,你在哪里发布?在插入导航控制器之前还是之后?
-
“使用 ARC”的建议无疑只是一个旁注,并不意味着与 ARC 显然不需要的
release代码一起完成,因为你会少很多这些日常内存管理问题是由于将您的release语句放在错误的位置而导致的。但是,尤其是考虑到您没有使用 ARC,您可能会使用 Xcode 的静态分析器(“Product”-“Analyze”或 shift+command+B),这将突出显示非 ARC 代码中的许多常规内存管理问题。
标签: iphone ios ipad uinavigationcontroller