UIImagePickerController EXC_BAD_ACCESS错误

时间:2013-06-28 13:06:49

标签: ios uiimagepickercontroller exc-bad-access

我将我的应用设置为运行如下:

- (BOOL)application:(UIApplication *)application 
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    self.window = [[UIWindow alloc] initWithFrame:
                         [[UIScreen mainScreen] bounds]];

    UIImagePickerController* picker = [[UIImagePickerController alloc] init];

    self.viewController = picker;
    self.window.rootViewController = self.viewController;
    [self.window makeKeyAndVisible];
    return YES;
}

出现图像选择器之后,我选择了#34; Camera Roll"。之后我按下后退按钮(标题为"照片")。应用程序崩溃导致EXC_BAD_ACCESS错误。 当我启用zombie对象时,我会收到" EXC_ARM_BREAKPOINT(子码= 0xdefe)"以下日志出错。之一:

[UIView willRemoveSubview:]: message sent to deallocated instance 0x2088ea20

或者如果我继续选择图像:

-[PLImageScrollView willRemoveSubview:]: message sent to deallocated instance 0x1d82c910

另一方面,如果我创建一个新项目并在AppDelegate中只放置声明的代码,代码就可以正常工作 - 没有错误。

现在,我正在开始一个新项目,我将从我之前的项目中复制一些内容,以找出问题所在。如果有人知道为什么会出现这些错误,请分享您的想法。

2 个答案:

答案 0 :(得分:1)

我发现了什么问题。 AppDelegate间接导入了我自己的自定义UIView类别,其中我(出于未知原因)实现了 dealloc 方法。

所有观点实际上都无法正确解除分配。我从那个类别删除了dealloc方法,一切都很好。

答案 1 :(得分:0)

尝试将UIImagePickerController* picker中的AppDelegate.h声明为类级别变量。 - (BOOL)application:(UIApplication *)application完成后,选择器将被取消分配。