【发布时间】:2011-07-16 03:39:30
【问题描述】:
简单的问题...
为什么当我单击 overlayController 视图上的按钮时,release 会使我的应用程序崩溃?
OverlayViewController* overlayController = [[OverlayViewController alloc]
initWithNibName:@"Overlay"
bundle:nil];
self.picker.cameraOverlayView = overlayController.view;
[overlayController release];
换一种说法,在这个viewDidLoad方法之外怎么调用OverlayViewController方法呢?
奇怪...我不明白为什么我的应用可以运行 :-)
【问题讨论】:
-
当崩溃发生时你的控制台会说什么?您是否尝试过“构建和调试”而不是“构建和运行”来查看崩溃发生时的堆栈跟踪?您是否在每行代码之间添加了
NSLog(@"x");行以查看实际导致崩溃的行? -
@e.James :是版本导致了崩溃,但我弄错了原因。见编辑。控制台什么也没说
-
酷。那么我的回答实际上会解决它。见下文!
:) -
总而言之,您正在创建然后释放
overlayController对象,因此它不会留下来。当您单击按钮时,overlayController 已被释放。按钮事件将被发送到未定义的内存块,您的应用将崩溃。
标签: iphone attributes crash release