在一个项目中,我使用Three20代替一些代码(不使用TTNavigator
或一些高级功能,只有几件事。)
当我尝试创建UIActionSheet
时,出现EXC_BAD_ACCESS
错误。触发它的代码如下(在UIViewController
)
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"Is Anyone Injured?"
delegate:self
cancelButtonTitle:nil
destructiveButtonTitle:nil
otherButtonTitles:nil];
[actionSheet addButtonWithTitle:@"Cancel"];
[actionSheet showInView:self.view];
}
一旦运行此代码,我就会收到EXC_BAD_ACCESS
错误,堆栈指向名为- (CGRect)frameWithKeyboardSubtracted:(CGFloat)plusHeight
的方法
在Three20的UIViewAdditions.m
内。
我注释掉了该方法,然后获得了EXC_BAD_INSTRUCTION
,但这次是在名为- (NSDictionary *)userInfoForKeyboardNotification
的方法中。再一次,在UIViewAdditions.m
的另一种方法中注释掉了,现在又失败了。
有没有人遇到过这个问题?我已尝试使用NSZombieEnabled
进行调试,但这不是原因(没有消息发送到僵尸对象)。
答案 0 :(得分:0)
我通过检查Three20项目中的每个“仅构建活动架构”复选框解决了问题。这似乎是几个Three20相关错误的神奇背景......